Django框架学习笔记(8.对应路由名称和路由分发)

来源:互联网 发布:淘宝双11如何抢购 编辑:程序博客网 时间:2024/04/29 13:11

name:

    对URL路由关系进行命名,以后可以根据此名称生成自己想要的URL


示例:

urls.py(这里给index加入了第三个参数):

from django.conf.urls import urlfrom django.contrib import adminfrom django.urls import pathfrom app01 import viewsurlpatterns = [    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,urlurlpatterns = [    url(r'^app01/', include("app01.urls")),    url(r'^app02/', include("app02.urls")),]