Django url配置

博客介绍了URL配置相关内容,包括匹配规则、捕获值方式、正则表达式前'r'的使用等。还提及有名分组和无名分组,捕获值传递给视图函数的方式。此外,介绍了name别名在urls配置文件和前端页面的应用,以及include分发中外层和app内urls的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

URL配置

http://www.cnblogs.com/haiyan123/p/7701412.html

urlpatterns = [
    url(r'^articles/2003/$', views.special_case_2003),
    url(r'^articles/([0-9]{4})/$', views.year_archive),
    url(r'^articles/([0-9]{4})/([0-9]{2})/$', views.month_archive),
    url(r'^articles/([0-9]{4})/([0-9]{2})/([0-9]+)/$', views.article_detail),
]

1、一旦匹配成功则不再继续

2、若要从URL 中捕获一个值,只需要在它周围放置一对圆括号。

3、不需要添加一个前导的反斜杠,因为每个URL 都有。例如,应该是^articles 而不是 ^/articles。

4、每个正则表达式前面的’r’ 是可选的但是建议加上。

有名分组和无名分组

from app02 import views
from django.conf.urls import url

urlpatterns = [
  #无名分组
    url(r'^article/\d{4}', views.year) ,

    url(r'^article/(\d{4})$', views.year2),
    如果有多个匹配一样的时候,谁放在上面就匹配谁,上面的就会把下面的覆盖了
    正则加上括号,就是分组,会把分组的内容作为year2函数的参数传进去
    url(r'^article/(\d{4})/(\d{2})$', views.year_month),

    # 有名分组(就是给分组起个名字,这样定义的好处就是按照关键字参数去传参了,指名道姓的方式)
    url(r'^article/(?P<year>\d{4})/(?P<month>\d{2})$', views.year_month_hasname)
]

捕获的值作为关键字参数而不是位置参数传递给视图函数。例如:

/articles/2005/03/    
    请求将调用views.month_archive(request, year='2005', month='03')函数
name别名

urls配置文件中

 url(r"register",views.register,name="reg"),

前端页面中

    {% load staticfiles %}
<form action="{% url 'reg' %}" method="post">
...
</form>
include分发

外层urls

from django.contrib import admin
from django.urls import path
from blog import views
from django.conf.urls import url,include

urlpatterns = [
    path('admin/', admin.site.urls),
    path(r'show_time/',views.show_time),
    url(r'blog/', include('blog.urls')),
]

app内的urls

from django.conf.urls import url,include
from django.contrib import admin
from blog import views

urlpatterns = [

    url(r'article/(\d{4})$',views.article_year),

    url(r'article/(?P<year>\d{4})/(?P<month>\d{2})',views.article_year_month),
    url(r'article/(?P<year>\d{4})/(?P<month>\d{2})/\d+',views.article_year_month),

    url(r"register",views.register,name="reg"),

]

浏览器新地址

http://127.0.0.1:8080/blog/register

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值