Python中如何配置Django URL?

2025-05-16 5

Image

Django URL 配置指南

在Django中,URL配置是将URL模式映射到视图函数的过程。以下是配置Django URL的基本步骤:

1. 项目根URL配置 (urls.py)

在项目的主目录下的urls.py文件中进行配置:

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('blog/', include('blog.urls')),  # 包含应用的URL配置
    path('', include('home.urls')),  # 首页URL配置
]

2. 应用级URL配置

在每个Django应用的目录下创建urls.py文件:

from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index'),  # 示例: 博客首页
    path('articles/<int:article_id>/', views.article_detail, name='article_detail'),
    path('category/<slug:category_slug>/', views.category_view, name='category'),
]

URL模式详解

path() 函数参数

  • 个参数: URL模式字符串
  • 第二个参数: 视图函数或类视图
  • name参数: 为URL命名,用于模板中的反向解析

路径转换器

  • <int:pk> - 匹配整数
  • <str:name> - 匹配任何非空字符串(不包括/)
  • <slug:title> - 匹配slug字符串(字母、数字、连字符、下划线)
  • <uuid:uuid> - 匹配UUID字符串
  • <path:path> - 匹配任何字符串包括/

高级URL配置

使用正则表达式(re_path)

from django.urls import re_path

urlpatterns = [
    re_path(r'^articles/(?P<year>[0-9]{4})/$', views.year_archive),
]

包含其他URL配置

urlpatterns = [
    path('community/', include('aggregator.urls')),
    path('contact/', include('contact.urls')),
]

命名空间

# 主urls.py
path('polls/', include(('polls.urls', 'polls'), namespace='polls')),

# 模板中使用
{% url 'polls:detail' question.id %}

实践

  1. 为每个URL模式命名(name参数)
  2. 使用应用级URL配置保持模块化
  3. 对于复杂URL模式使用正则表达式
  4. 使用命名空间避免名称冲突
  5. 保持URL设计简洁一致

这样配置后,Django会根据请求的URL找到对应的视图函数或类视图进行处理。

(牛站网络)

1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!cheeksyu@vip.qq.com
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有积分奖励和额外收入!
5.严禁将资源用于任何违法犯罪行为,不得违反国家法律,否则责任自负,一切法律责任与本站无关