Python Django框架

Django是一个开放源代码的Web应用框架,由Python写成 。学习过的人无不知晓它的强大,今天就为大家由浅入深的进行Python Django框架的讲解,哪怕是小白也能轻松理解 。

Python Django框架

文章插图
 
1、Django简介
Python下有多款不同的 Web 框架,Django是最有代表性的一种 。许多成功的网站和App都基于Django 。
Django是一个开源的Web应用框架,由Python写成 。
Django采用了MVC的软件设计模式,即模型M,视图V和控制器C 。
2、Django的特点
1) 强大的数据库功能:用python的类继承,几行代码就可以拥有一个动态的数据库操作API,如果需要也能执行SQL语句 。
2) 自带的强大的后台功能:几行代码就让网站拥有一个强大的后台,轻松管理内容 。
3) 优雅的网址:用正则匹配网址,传递到对应函数 。
4) 模板系统:强大,易扩展的模板系统,设计简易,代码和样式分开设计,更易管理 。
5) 缓存系统:与memcached或其它缓存系统联用,表现更出色,加载速度更快 。
6) 国际化:完全支持多语言应用,允许你定义翻译的字符,轻松翻译成不同国家的语言 。
3、Django项目目录
1) urls.py:网址入口,关联到对应的views.py中的一个函数(或generic类),访问网址就对应一个函数 。
2) views.py:处理用户发出的请求,与urls.py对应, 通过渲染templates中的网页可以将显示内容,如登陆后的用户名,用户请求的数据等输出到网页 。
3) models.py:与数据库操作相关,存入或读取数据时用到,用不到数据库时可以不使用 。
4) forms.py:表单,用户在浏览器上输入数据提交,对数据的验证工作以及输入框的生成等工作,也可以不使用 。
5) templates文件夹:views.py中的函数渲染templates中的html模板,得到动态内容的网页,可以用缓存来提高速度 。
6) admin.py:后台,可以用很少的代码就拥有一个强大的后台 。
7) settings.py:Django 的配置文件,如 DEBUG 的开关,静态文件的位置等 。
4、Django基本命令
1) 新建一个项目:
django-admin.py startproject project-name
在 windows 上如果报错,尝试用 django-admin 代替 django-admin.py。
2) 新建一个APP:
python manage.py startapp app-name

django-admin.py startapp app-name
一般一个项目有多个app, 当然通用的app也可以在多个项目中使用 。
3) 启动服务器:
python manage.py runserver 0.0.0.0:8000

python manage.py runserver
前者让其它电脑可连接到服务器,监听机器上所有ip的8000端口,访问时用电脑的ip代替 127.0.0.1(8000为端口号,如果不说明,则端口号默认为8000);后者在本电脑访问服务器,访问时ip为127.0.0.1 。
5、视图与网址
views.py:
from django.http import HttpResponsedef helloWorld(request):return HttpResponse("Hello world! ")urls.py:
启动服务器,并在浏览器访问:127.0.0.1:8000 。
修改后的urls.py:
from django.conf.urls import urlfrom . import viewurlpatterns = [url(r'^helloWorld$', view.helloWorld)]启动服务器,并在浏览器访问:127.0.0.1:8000/helloWorld 。
url() 函数:可以接收四个参数,分别是两个必选参数regex、view 和两个可选参数kwargs、name:
① regex:正则表达式,与之匹配的 URL 会执行对应的第二个参数 view 。
② view:用于执行与正则表达式匹配的 URL 请求 。
③ kwargs:视图使用的字典类型的参数 。
④ name:用来反向获取 URL 。
6、Django模板
1) 实例:
① 在app目录中,创建 templates 目录并建立 helloWorld.html文件:
<h1>{{ helloWorld }}</h1>
② 向Django说明模板文件的路径,修改settings.py文件,修改 TEMPLATES 中的 DIRS 为 [BASE_DIR+"/templates",] 。
③ 修改views.py:
from django.shortcuts import renderdef hello(request):context = {}context['helloWorld'] = 'Hello World!'return render(request, 'helloWorld.html', context)render使用了一个字典 context 作为参数,context 字典中元素的键值 "helloWorld" 对应了模板中的变量 "{{ helloWorld }}" 。
④ 启动服务器,并在浏览器访问:127.0.0.1:8000/helloWorld 。
2) Django 模板标签
① if/else 标签
if/else支持嵌套,{% if %} 标签接受and、or 或not关键字来对多个变量做判断,或对变量取反 。
{% if condition %}
...
{% endif %}
或者:
{% if condition1 %}


推荐阅读