探索Django路由规则(路由匹配、路由命名空间、HTML中的跳转与Django集成、路由传参以及后端重定向)
在Django中,路由规则是通过在项目的urls.py
文件中定义来实现的。以下是一些核心概念的示例代码:
from django.urls import path, re_path, include
from . import views
urlpatterns = [
path('articles/2003/', views.special_case_2003), # 简单路由匹配
re_path(r'^articles/(?P<year>[0-9]{4})/$', views.year_archive), # 正则表达式路由匹配
path('articles/<int:year>/', views.year_archive), # 带类型转换的参数路由匹配
path('articles/<int:year>/<int:month>/', views.month_archive),
path('archive/<path:path>/', views.custom_path), # 匹配任意路径
]
# 使用命名空间的例子
app_name = 'news'
urlpatterns = [
path('articles/2003/', views.special_case_2003, name='special-case'),
# ... 其他路由规则
]
在HTML中使用Django路由:
<a href="{% url 'news:special-case' %}">View the special case</a>
在视图函数中使用路由传递:
from django.http import HttpResponseRedirect
from django.urls import reverse
def my_view(request):
# 反向解析URL
redirect_url = reverse('news:special-case')
return HttpResponseRedirect(redirect_url)
这些代码片段展示了如何在Django中定义和使用路由规则,包括简单的路径匹配、带参数的路径匹配、带正则表达式的复杂路径匹配,以及如何在HTML模板和视图中使用路由。
评论已关闭