name:
对URL路由关系进行命名,以后可以根据此名称生成自己想要的URL
示例:
urls.py(这里给index加入了第三个参数):
from django.conf.urls import url from django.contrib import admin from django.urls import path from app01 import views urlpatterns = [ path('admin/', admin.site.urls), path('index/', views.index, name="indexx"), path('login/', views.login), url(r'^detail-(?P<nid>\d+).html', views.detail), ]
相应的HTML修改(这里的action属性做了修改):
<form action="{% url 'indexx' %}" method="POST"> <p><input type="text" name="user" placeholder="用户名"/></p> <p><input type="text" name="email" placeholder="邮箱"/></p> <input type="submit" value="提交"/> </form>
现在就可以做到修改urls里面的路径,而表单提交的action内容不需要修改。
也可以根据URL路由关系生成URL(用reverse方法得到URL):
from django.urls import * def detail(request, nid): print(request.path_info) v = reverse('indexx') print(v)
路由分发:
在建立的app下面创建urls.py,在里面写入本app用的url
当一个URL请求过来时候,先到达project下的urls.py,匹配到第一个参数,再前往相应的urls.py做做处理:
from django.conf.urls import include,url urlpatterns = [ url(r'^app01/', include("app01.urls")), url(r'^app02/', include("app02.urls")), ]