一、安装
windows 7
1.安装pip
下载get-pip.py后直接安装
python3 get-pip.py
2.安装django
pip3 install Django==1.11.4
Linux
1.安装pip
yum install python3-pip
2.安装Django
pip3 install Django==1.11.4
二、创建项目及应用
1.命令行方式创建
django-admin startproject mypro -- 创建项目
python manage.py startapp app01 -- 创建应用
python manage.py runserver 8080 -- 启动项目
python manage.py makemigrations
python manage.py migrate
2.pycharm
file->new project->Django
三、MVC与MTV模式
四、项目结构
1.urls.py
链接入口,关联到对应的views.py中的一个函数(或者称作generic类),访问的连接对应一个函数
2.views.py
处理用户请求,从urls.py中对应而来。通过渲染templates中的网页可以为用户显示页面内容,比如登录后的用户名,用户请求的数据,通过其输出到页面。
3.models.py
与数据库操作相关,存入或者读取数据时使用,当不使用数据库的时候,也可以当做一般的类封装文件,存储各种类的定义。
4.settings
Django的设置、配置文件,比如DEBUG的开关,静态文件的位置等
5.templates目录
views.py中渲染templates中的html模板,得到动态内容的网页,可以用缓存来提高渲染速度。
四、路由配置系统
URL配置就是URL调用路径与视图函数之间的映射关系
from django.conf.urls import url from . import views urlpatterns = [ url(r'^articles/2003/$', views.special_case_2003), url(r'^articles/([0-9]{4})/$', views.year_archive), url(r'^articles/([0-9]{4})/([0-9]{2})/$', views.month_archive), url(r'^articles/([0-9]{4})/([0-9]{2})/([0-9]+)/$', views.article_detail), ]
五、视图函数
作用:逻辑实现
from django.http import HttpResponse import datetime def current_datetime(request): now = datetime.datetime.now() html = "<html><body>It is now %s.</body></html>" % now return HttpResponse(html)
附:
http请求-响应过程中有两个核心对象:
http请求对象:HttpRequest
http响应:HttpResponse(用于向网页返回内容)
所在位置:django.http
render函数:渲染打包HttpResponse对象发送给客户端
=================================================================
django流程回顾
URLconf name别名
后端改路径不影响前端
1.URLocnf配置
模板深度查询-->句点查询
template:html+逻辑代码
渲染变量-->render
渲染标签
template rander content-->(t.render(c))
locals的使用
不用在render的时候列出对应关系
模板深度查询(列表索引,类对象的属性,)
模板语言之filter
filter语法:{{ var|方法:参数}}
safe方法
<p>{{ s }}</p>
<p>{{ s|safe }}</p>
自定义filter和sample_tag
a.在app中创建templatetags模块(必须的)
b.在该模块下创建任意的.py文件
导入template模块
register变量初始化
函数及装饰器
********************************
from django import template
register=template.Library()(register固定)
@register.filter
def multi(x,y)
return x*y
********************************
html-->{{ var|muilt:参数}}
c.加载filter
{% load mytag %}