在Django中,路由由URL模式和视图函数组成。URL模式定义了URL的结构和匹配规则,而视图函数则定义了当URL匹配时要执行的代码逻辑。Django的路由系统允许你根据URL的不同部分进行模式匹配,并从URL中提取参数传递给视图函数。
# myapp/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.home, name='home'),
path('about/', views.about, name='about'),
path('post/<int:post_id>/', views.post_detail, name='post_detail'),
]
在上面的示例中,我们定义了三个URL模式:
about/
路径:path('about/') 将映射到 views.about 视图函数,表示关于页面。post/int:post_id/
路径:path('post/<int:post_id>/')
将映射到 views.post_detail
视图函数,并将URL中的post_id作为参数传递给该视图函数。这个URL模式使用了尖括号(< >)来标记参数部分,并指定了参数的类型为整数(int)。
在上述示例中,urlpatterns列表定义了应用程序的所有URL模式。每个URL模式由path函数定义,接受两个参数:第一个参数是URL模式的字符串表示,第二个参数是要调用的视图函数。你还可以为每个URL模式指定一个名称(name),以便在代码中引用它们。通常,你需要在项目的主路由文件中包含应用程序的URL配置。例如,如果你的应用程序名为myapp,你需要在项目的主路由文件中包含以下内容:
# project/urls.py
from django.urls import include, path
urlpatterns = [
path('myapp/', include('myapp.urls')),
]
上述示例中,include函数用于将myapp/urls.py文件中定义的URL模式包含到主路由文件中。这样,当用户访问/myapp/路径时,Django将使用应用程序的URL配置来处理该请求。
这只是Django路由系统的基本介绍。Django还提供了其他高级功能,如正则表达式匹配、命名空间等。通过使用Django的路由系统,你可以轻松地定义URL模式,并将它们与相应的视图函数关联起来,从而构建功能完整的Web应用程序。
相关参考: