django-url调度器

django 的url调度器支持自定义

urlpatterns = [
    path('admin/', admin.site.urls),
    path('year/<yyy:year>/', test_urlConverter),
    re_path('^re/(?P<year>[0-9]{4})/$', test_re_path),
    re_path(r'^re/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/$', test_re_path_month),
]

path和re_path为两种方式

path自定义url时需要另外创建一个类,作为url调度器的引用

class yearConverter(object):
    regex = '[0-9]{4}'
    def to_python(self, value):
        return int(value)
    def to_url(self, value):
        return '%04d' % value

通过django.urls的register_converter进行注册

register_converter(yearConverter, 'yyy')
# yyy是url调度器的别称

re_path调度器的使用则是通过正则表达式直接使用,不过有特定的规则写法

具体可查阅django中're_path'的用法_re.path-CSDN博客

url调度器默认值

默认值有两种方式,一种是通过python基础语法在views.py文件中定义路由函数方法的时候进行默认值传递,但是要注意的是,函数的参数必须在path路径中也要有参数传递

另一种是在path路径后加入{'参数名称','参数默认值'}

path('args/', args_index),
path('args/<int:index>', args_index),

# 第二种方式
path('other_args/', other_args,{'info': 'hello'}),
def args_index(request,index = 4):
    return HttpResponse(f'接收到的参数为{index}')

def other_args(request,info):
    return HttpResponse(f'接收到的参数为{info}')

url调度器引用自定义错误页面

自定义错误页面需要使用handler定义

在主应用urls.py中引入此变量,

handler404 = 'error_app.views.error_view'
'''
error_app为子app,views为子应用py文件,里面的error_view函数返回的视图
上述为自己定义的错误页面的一个路径
handler为固定,后面的404为状态码,也可以为500,400等
'''

引入其他的url调度器

有多种方式,个人喜爱是在子应用中创建urls最后将路由组件导入

'''
子应用中创建urls自定义新的路径
'''
from django.urls import path
from .views import include_test
urlpatterns = [
    path('include/', include_test),
]
# 最后在主应用中将urls的路由变量导入

url调度器的引用可以列表的方式迭代器会将path一次引入

from django.urls import path,re_path,include
from url_include_app.views import include_test1,include_test2
from url_include_app.urls import urlpatterns as urlpatt


path('inc/',include(urlpatt)),
path('include/',include([
    path(' /', include_test1),
    path('test2/', include_test2),
]))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值