路由系统 urls
视图 views
模板 TempLates
静态文件和媒体文件 static
中间件 middleware
ORM databases
urls 内容如下:
- from django.urls import path
- from app01 import views
- urlpatterns = [
- # path('admin/', admin.site.urls),
- path('login/', views.login),
- path('article',views.article),
- path('inOne/
/' ,views.inOne), - path('abc/
/' ,views.abc) - path('efg/
/' ,views.efg), - path('hij/
' ,views.hij), -
views 内容如下:
- from django.shortcuts import render,HttpResponse
-
- # Create your views here.
- def login(request):
- print('login')
- return HttpResponse('login')
-
- def article(request):
- return HttpResponse('article')
-
- def inOne(request,nid):
- print(nid)
- return HttpResponse('nid'+'inOne')
-
- def abc(request,a):
- print(a)
- return HttpResponse('abc')
-
- def efg(request,b):
- print(b)
- return HttpResponse('efg')
- def hij(request,c):
- print(c)
- return HttpResponse('hij')
格式是<类型:参数> 且这个方式是可以传递参数到函数及views里面
int,整数 #匹配整数 格式 < 数据类型 : 数据 >
str,字符串 #匹配字符串
slug,字母+数字+下滑线+- # 匹配 字母+数字+下划线 + -号等
uuid,uuid格式
path,路径,可以包含 /
urls 内容如下:
- from django.urls import path,re_path
-
- from app01 import views
-
-
- # 正则路由
- urlpatterns = [
- re_path(r'aaa/(\d+)/',views.aaa),
- re_path(r'bbb/(\w+)-(\d*)/',views.bbb), # 这样写就是按分组位置传参,views函数中形参随意定义
- re_path(r'ccc/(?P
\w+)/(?P\d+)/' ,views.ccc), # s1,s2就是参数名称,views函数中参数必须定义为s1,s2 -
- ]
views 内容如下:
- from django.shortcuts import render,HttpResponse
-
- # 正则路由
- def aaa(request,d):
- print(d)
- return HttpResponse('正则-aaa')
-
- def bbb(request,e,f): #e,f 按位置来结束url过来的参数,可以任意定义这两个形参
- print(e)
- print(f)
-
- return HttpResponse('正则-bbb')
-
- def ccc(request,s1,s2): #s1,s2是url固定带过来的必须定义为s1,s2 必须和urls中对应,可以理解成字典
- print(s1)
- print(s2)
- return HttpResponse('正则-ccc')
假如一个项目中有很多个功能,可以分到多个app中,
inlucde + 多apps(一般),将功能拆分不到不同的app中。在每个app中创建每个app自己的路由(urls)。例如有两个app分别是 api web 格式如下:
- from django.urls import path,include
- urlpatterns = [
- path('api/',include('apps.api.urls')), # api 是app目录且后面必须加/ ,include后面是app对应的子路由路径
- path('web/',include('apps.web.urls')), # web 是app目录且后面必须加/ ,include后面是app对应的子路由路径
-
- ]