码迷,mamicode.com
首页 > 其他好文 > 详细

django的路由层

时间:2018-11-28 20:40:32      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:正则表达式   space   127.0.0.1   names   创建   red   顺序   sha   接收   

 

注意:视图函数里面render是渲染一个模板,redirect是返回一个url
html里面的连接都是url
url是根据索引查找一个个视图函数

一 简单配置

-第一个参数是正则表达式(如果要精准匹配:‘^publish/$‘)
-第二个参数是视图函数(不要加括号)
-url(r‘^admin/‘, admin.site.urls),

二 无名分组

-按位置传参
-分组之后,会把分组出来的数据,当位置参数,传到视图函数,所以,视图函数需要定义形参
-url(r‘^publish/([0-9]{4})/([0-9]{2})$‘, views.publish),
-def publish(request,*args): 视图函数可以这样接收

三 有名分组

-按关键字传参
-有名分组之后,会把分组出来的数据,当关键字参数,传到视图函数,所以,视图函数需要定义形参,
形参名字要跟分组的名字对应,与顺序无关
-url(r‘^publish/(?P<year>[0-9]{4})/(?P<mounth>[0-9]{2})/$‘, views.publish),
-def publish(request, mounth,year):
*有名分组和无名分组,不要混用

四 反向解析

1 先命一个名

-1 无参数:url(r‘^publishadd133/$‘, views.publishadd,name=‘ddd‘),
-2 无名分组:url(r‘^publishadd/([0-9]{4})/([0-9]{2})/$‘, views.publishadd,name=‘ddd‘),
-3 有名分组:url(r‘^publishadd/(?P<year>[0-9]{4})/(?P<mounth>[0-9]{2})/$‘,
views.publishadd,name=‘ddd‘)

2 在模板层

-1 无参数:{% url ‘ddd‘ %}
-2 无名分组的:{% url ‘ddd‘ 2018 12 %}
-3 有名分组:{% url ‘ddd‘ 2018 12 %} 还可以 {% url ‘ddd‘ year=2018 mounth=12 %}

3 在视图层

from django.shortcuts import reverse
在视图函数里:
1 无参数:url=reverse(‘ddd‘)
1 无名分组:url=reverse(‘ddd‘,args=(2018,12,))
1 有名分组:url=reverse(‘ddd‘,args=(2018,12,)) 还可以 url=reverse(‘ddd‘,
kwargs={‘year‘:2018,‘mounth‘:12})

五 路由分发

1 在不同的app里创建urls.py

2 在总路由

-from django.conf.urls import include
-url(r‘^blog/‘,include(‘blog.urls‘)),
-url(r‘^app01/‘,include(‘app01.urls‘)),

3 在不同的app的urls里配置路由关系
app01—urls

url(r‘^publish/$‘, views.publish,name=‘app01_test‘),

blog—urls

url(r‘^blogtest/$‘, views.test,name=‘test‘),

重点总路由,不能加结束符$

六 名称空间

-url(r‘^blog/‘,include(‘blog.urls‘,namespace=‘blog‘)),
-子路由:url(r‘^publish/$‘, views.publish,name=‘test‘),
-反向解析:
-视图层:url = reverse(‘blog:test‘)
-模板层:{% url ‘app01:test‘%}
一般不要用
子路由:url(r‘^publish/$‘, views.publish,name=‘app01_test‘)

七 伪静态

-路由:url(r‘^book/(?P<id>\d+.html)‘,views.book),
-访问:http://127.0.0.1:8000/book/4.html

django的路由层

标签:正则表达式   space   127.0.0.1   names   创建   red   顺序   sha   接收   

原文地址:https://www.cnblogs.com/zhangshengxiang/p/10034199.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!