2、django路由层
#前言:对于前后端分离的项目。url的很多作用并不广泛。比如起别名,以及模板层的反向解析等等。
1、urls.py的文件意思就是告诉django,对于客户端访问的这个链接,应该交给哪一段代码来处理。
2、基本样式:
1 # coding:utf-8 2 from django.contrib import admin 3 from django.urls import path,re_path 4 from test_app import views 5 6 urlpatterns = [ 7 path('admin/', admin.site.urls), 8 path('login/', views.login), 9 path('extend_index/', views.extend_index), 10 path('extend_order/', views.extend_order), 11 path('extend_shopping_list/', views.extend_shopping_list), 12 path('extend_base/', views.extend_base), 13 path('add_order/', views.add_order, name='zengjia'), 14 path('query_order/', views.query_order, name='chaxun'), 15 re_path(r'del_order/(\d+)', views.delorder, name='shanchu'), 16 re_path(r'edit_order/(\d+)', views.edit_order, name='bianji'),
path:第一个参数代表你访问的链接。第二个参数代表对应的views里面的函数。
re_path:r的目的是告诉python该字符串中任何字符都不应该转义,所以对于re_path,建议都加上。后面可以随意加正则.
3、关于路由分发:
正常一个项目基本上是一个功能或者一个模块一个app。所以基本上不会把所有url都写在全局url里面。
如下:全局url做一个路由分发,分发给两个app:
from django.contrib import admin from django.urls import path, include, re_path from test_app import views urlpatterns = [ re_path(r'^$', views.index, name='ShouYe'), path('test_app/', include('test_app.urls')), path('test_app2/', include('test_app2.urls')) ]
然后在后面的app url中写具体数据即可
# coding:utf-8 from django.urls import path from test_app2 import views urlpatterns = [ path('timer/', views.timer), ]