URL配置(URLconf)就像Django 所支撑网站的目录。它的本质是URL与要为该URL调用的视图函数之间的映射表;你就是以这种方式告诉Django,对于这个URL调用这段代码<br>对于那个URL调用那段代码
|
1
2
3
4
5
6
7
8
9
10
|
urlpatterns = [
url(正则表达式, views视图函数,参数,别名),
] 参数说明: 一个正则表达式字符串
一个可调用对象,通常为一个视图函数或一个指定视图函数路径的字符串
可选的要传递给视图函数的默认参数(字典形式)
一个可选的name参数
|
1. 单一路由对应
|
1
|
url(r\'^index$\', views.index)
|
2. 基于正则的路由
|
1
2
3
4
5
|
/edit-user/(\w+)/ def edit_user(request,a1) 正则表达式 函数里面需要在传一个参数
/add-user/(?P<a1>\w+)/ def add_user(request,a1) 关键字
PS:# url(r\'^edit/(\w+)/(\w+)/\', views.edit), #需要两个参数,需要按照顺序传参#url(r\'^edit/(?P<a2>\w+)/(?P<a1>\w+)/\', views.edit),按照名称放置 关键字 |
终止符:^edits$
伪静态:url(r’^edit/(\w+).html$’,views.edit)
3.路由分发
|
1
2
3
4
5
6
7
|
urls.py url(r\'^app01/\',include(\'app01.urls\')),
总路由:
url(r\'^\',default), url不存在的话 可以默认写 or 跳转到index 的路径下
url(r\'^\',views.index), #路由默认不写 或者路由错误 直接执行index的函数
app01.urls.py
url(r\'^index.html$\',views.index),
|
4.根据名称可以反向生成URL
1 views.py: 2 from django.urls import reverse #根据名字反转成url 3 def index(request,a1): #一一对应关系 4 user_list=[ 5 "alex","eric","tony" 6 ] 7 v=reverse("n1",args=(1,)) #args= 数字自己规定 写的是1 url也会体现出来 8 and 9 v=reverse("n1",kwargs={\'a1\':11111}) 10 print(v) 11 return render(request,\'index.html\',{"user_list":user_list}) 12 urls: 13 url(r\'^index/(\d+)/\',views.index,name="n1"), 14 url(r\'^index/(?P<a1>\d+)/\',views.index,name="n1"),
客户端:
url(r\'^login/\',views.login,name=\'m1\'), <form method="POST" action="{% url "m1" %}"> /* 根据名称也可以反生url*/ url(r\'^edit/(\w+)/\', views.edit,name=\'n2\') <li>{{ i }}<a href="{% url \'n2\' i %}">| 编辑</a></li> 跳转的时候也可以做,不用写url