Django开发web站点步骤
1、创建Django工程
django-adminstartproject工程名
2、创建App
cd工程名pythonmanage.pystartappcmdb
3、静态文件配置
编辑 project.settings.py,追加以下内容
STATICFILES_DIRS=(os.path.join(BASE_DIR,"static"),)
4、模板路径配置
DIRS==>(os.path.join(BASE_DIR,'templates'),)
5、settings中,注释 csrf
MIDDLEWARE_CLASSES=(#'django.middleware.csrf.CsrfViewMiddleware',)
6、定义路由规则,在url.py中定义用户访问的url由哪个函数来处理请求
url.py"login"-->函数名
7、定义视图函数,在views.py中定义函数
deffunc(reuest):#request.methodGET/POST#http://127.0.0.1:8000/home?nid=123&name=bob#request.GET.get('',None)#获取请求发来的数据#request.POST.get('',None)#returnHttpResponse("字符串")#returnRender(request,'HTML模板路径',{"user_list":USER_LIST})#returnredirect('只能填URL,例如:/home')
8、模板渲染
Django特殊的模板语言,例如:
--变量名取值--
在views.py中定义好变量和对应的值,在template的html页面中通过` var_name `的方式来取值
deffunc(request):returnrender(request,"index.html",{'current_user':"bob"})index.html<html><body><div>{{current_user}}</div></body></html>
--For循环取值--
在views.py中定义好列表和值,在template的html页面中通过{{ for循环 }}的方式来取值
deffunc(request):returnrender(request,"index.html",{'current_user':"bob",'user_list':['bob','aaa','bbb']})index.html<html><body><div>{{current_user}}</div><ul>{%forrowinuser_list%}<li>{{row}}</li><%endfor%></ul></body></html>
--索引取值--
在views.py中定义好字典和值,在template的html页面中通过` var_name`.`key `的方式来取值
deffunc(request):returnrender(request,"index.html",{'current_user':"bob",'user_list':['bob','aaa','bbb'],'user_dict':['k1':'v1','k2':'v2']})index.html<html><body><div>{{current_user}}</div><a>{{user_list.1}}</a>//对于列表直接用索引取值<a>{{user_dict.k1}}</a>//对于字典,要用key取值<a>{{user_dict.k2}}</a></body></html>
--循环字典--
模板语法除了而已循环列表外,也可以循环字典,用法和python基本一样,只不过循环时,不要加括号()
USER_DICT={'K1':'V1','K2':'V2','K3':'V3','K4':'V4'}例1、循环key{%forkinUSER_DICT.keys%}<li>{{k}}</li>{%endfor%}例2、循环键值对{%foriteminUSER_DICT.items%}<li>{{item}}</li>{%endfor%}例3、循环values{%forvinUSER_DICT.values%}<li>{{v}}</li>{%endfor%}例4、循环values{%fork,vinUSER_DICT.items%}<li>{{k}}-{{v}}</li>{%endfor%}
--条件取值--
{% if %}
{% if %}
{% endif %}
{% else%}
{% else %}
{% endif %}
deffunc(request):returnrender(request,"index.html",{'current_user':"bob",'age':18,'user_list':['bob','aaa','bbb'],'user_dict':['k1':'v1','k2':'v2']})index.html<html><body><div>{{current_user}}</div><a>{{user_list.1}}</a>//对于列表直接用索引取值<a>{{user_dict.k1}}</a>//对于字典,要用key取值<a>{{user_dict.k2}}</a>{%ifage%}<a>有年龄</a>{%ifage>16%}<a>老男人</a>{%else%}<a>小鲜肉</a>{%endif%}{%else%}<a>无年龄</a>{%endif%}</body></html>
模板的工作流程:
1、当用户请求通过url发送请求后,django路由将请求交给视图函数,
2、然后视图函数会先去取模板,
3、将模板中有` current_user `这样的变量与视图中定义的值进行渲染,渲染后将模板内容转换成字符串
4、将生成后字符串整体返回给用户
过滤器
模板过滤器是变量显示前转换它们的值的方式,看起来像下面这样
{{name|lower}}
这将显示通过lower过滤器过滤后` name `变量的值,它将文本转换成小写
使用(|)管道来申请一个过滤器
过滤器可以串成链,即一个过滤器的结果可以传向下一个,下面是escape文本内容然后把换行转换成p标签的习惯用法
{{my_text|escape|linebreaks}}
更过关于Django模板的资料,请访问:
http://blog.csdn.net/zhangxinrun/article/details/8095118/
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。