django2.0版的path path转化器
从django2.x以后,建议使用path,是一个准确路径,用来解决数据类型转换问题与正则表达式冗余问题
django2.0中的re_path与1.0的url一样传入的第一个参数都是正则表达式,用法跟url一模一样
from django.urls import re_path # django2.0中的re_path from django.conf.urls import url # 在django2.0中同样可以导入1.0中的url urlpatterns = [ # 用法完全一致 url(r'^app01/', include(('app01.urls','app01'))), re_path(r'^app02/', include(('app02.urls','app02'))), ]
path转化器
1 5个内置转换器
str,匹配除了路径分隔符(/)之外的非空字符串,这是默认的形式 int,匹配正整数,包含0。 slug,匹配字母、数字以及横杠、下划线组成的字符串。 uuid,匹配格式化的uuid,如 075194d3-6885-417e-a8a8-6c931e272f00。 path,匹配任何非空字符串,包含了路径分隔符(/)(不能用?)
2 例子
-path('login/<int:year>', views.login),
-path('login/<str:year>', views.login),
-path('login/<path:p>', views.article),
3 高级例子
-实现匹配这种路径:http://127.0.0.1:8000/liuqingzheng/p/4444.html
-path('<str:name>/p/<int:id>.html', views.article),
-re_path(r'^(?P<name>.*?)/p/(?P<id>\d+).html$', views.login),
-url(r'^(?P<name>.*?)/p/(?P<id>\d+).html$', views.login), # url在2.x以后不建议使用
4 转换器可以不可以在re_path中使用?不能!!!!
自定义转化器
1 写一个类
-regex属性:这里写的正则表达式就能匹配
-to_python方法
-to_url 方法
2 注册这个类
register_converter(类名, 'lqz')
3 使用在path中更使用
path('<lqz:name>/', views.article),
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南