如何将Django 1路由系统迁移至Django 2、3?含url转path实例求助
解决Django 2/3中旧URL正则转path格式的问题
把你提供的旧版url()正则配置转换为Django 2+的path()格式很简单,核心是用Django内置的路径转换器替代正则捕获组:
原旧版正则代码
url(r'^image/(?P<width>[0-9]+)x(?P<height>[0-9]+)/$', views.your_view_function, name='image')
转换后的path格式代码
path('image/<int:width>x<int:height>/', views.your_view_function, name='image')
转换说明
- 旧正则里的
(?P<width>[0-9]+)是捕获整数类型的width参数,对应path里的<int:width>(int转换器自动匹配正整数,和[0-9]+效果一致) - 中间的
x是固定分隔符,直接保留在路径字符串中即可 - 旧正则里的
(?P<height>[0-9]+)对应path里的<int:height>
这样转换后,路径匹配规则和原正则完全一致,同时符合Django 2/3的URL配置规范。
内容的提问来源于stack exchange,提问作者just_1999
相关产品推荐
相关产品推荐

