在Django中,urls.py
文件用于定义URL模式,它指定了URL与视图函数之间的映射关系。以下是一些常见的urls.py
用法:
基本URL映射:
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
path('about/', views.about, name='about'),
# 其他路径映射...
]
其中name='****'的使用方法:(在模板文件中 url 调用的时候使用)
<!-- 在模板文件中创建链接到关于页面的URL -->
<a href="{% url 'about' %}">About Us</a>
这里使用path()
函数来定义URL模式。第一个参数是URL路径,第二个参数是处理该URL的视图函数,name
参数可选,用于在模板中生成URL。
正则表达式URL映射:
from django.urls import re_path
from . import views
urlpatterns = [
re_path(r'^articles/(?P<year>[0-9]{4})/$', views.article_archive),
# 其他正则表达式路径映射...
]
使用re_path()
函数可以使用正则表达式来匹配URL。
包含其他URL配置:
from django.urls import include, path
from . import views
urlpatterns = [
path('blog/', include('blog.urls')),
# 其他路径映射...
]
可以通过include()
函数包含其他应用的URL配置。
命名空间:
from django.urls import path
from . import views
app_name = 'polls'
urlpatterns = [
path('', views.index, name='index'),
path('<int:question_id>/', views.detail, name='detail'),
# 其他路径映射...
]
使用app_name
定义命名空间,有助于在模板中区分不同应用的URL。
处理静态文件:
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
# 其他路径映射...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
当开发时使用静态文件时,可以通过这种方式将MEDIA_URL映射到MEDIA_ROOT。
这些是常见的urls.py用法,根据具体项目需求可能会有一些变化和扩展。