路由与视图
## 传统路由结构 ### app/views.py 在app/views.py中定义视图 ```python from django.shortcuts import render def index(request): # 返回templates/index/index.html return render(request, 'index/index.html') ``` ### Project/urls.py 一般在某个app内新建一个urls.py,再通过include()函数包含进项目的urls.py。 ```python from django.urls import include # 向urlpatterns添加path # /test/后为index.urls定义的路由 path('test/', include('index.urls')), ``` ### app/urls.py: ```python from django.urls import path from .views import * urlpatterns = [ # 路由/test/a返回views.py中的index函数(即templates/index/index.html) path('a', index), ] ``` ### 路由变量 - `<xxx>`:字符型 - `<int:xxx>`:整型 - `<slug:xxx>`:slug型 - `<uuid:xxx>`:uuid型 路由变量使用方法: ```python path('<abc>', app_1, name='app_1) path('<int:id>', app_2, name='app_2') ``` 正则路由: ```python re_path("(?P<id>[0-9]{2})/(?P<str>)[A_Z]{3}") ``` ## 命名空间与路由命名 命名空间一般在include函数中定义,用来快速定位某个项目应用的urls.py。 ```python # 项目目录下的urls.py: path('app_1/', include('app_1.urls', namespace='app_1')) ``` 路由命名一般在path函数中定义,用来快速定位某一条路由 ```python # app_1目录下的urls.py: path('',app_1, name='app_1') ```
创建时间:2023-03-24
|
最后修改:2023-12-27
|
©允许规范转载
酷酷番茄
首页
文章
友链