django - 将旧的 Django URL 更改为新路径

标签 django url path django-2.0

所以我在 Django 2.0 中创建了一个新站点,并按照本教程制作了一个带有激活电子邮件的用户注册表单,我对新的 Django 2 的理解还不够好,所以我想问 Django 2 的等价物是什么这个网址的

url(r'^activate/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$', views.activate, name='activate'),

最佳答案

您的路径没有直接转换,您可以使用文档中所述的转换器来转换 token 。这是文档中的示例:

class FourDigitYearConverter:
    regex = '[0-9]{4}'

    def to_python(self, value):
        return int(value)

    def to_url(self, value):
        return '%04d' % value

注册转换器

from django.urls import path, register_converter

from . import converters, views

register_converter(converters.FourDigitYearConverter, 'yyyy')

urlpatterns = [
    path('articles/2003/', views.special_case_2003),
    path('articles/<yyyy:year>/', views.year_archive),
    ...
]

或者您可以像现在这样对路径进行正则表达式:

from django.urls import path, re_path

from . import views

urlpatterns = [
    path('articles/2003/', views.special_case_2003),
    re_path(r'^activate/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$', views.activate, name='activate')
]

我会坚持使用 re_path 的正则表达式,因为您知道它有效并且已经完成。

这是文档的链接: https://docs.djangoproject.com/en/2.0/topics/http/urls/

关于django - 将旧的 Django URL 更改为新路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50420069/

相关文章:

django - “讨厌的 “Table ' my_table'已经存在”在Django-South中

python - 值错误 : invalid literal for int() with base 10:

python - 从文本字符串中查找关键字列表并查找不完全匹配

javascript - 如何在 javascript 中使用带有 youtube spa 技术的 mutationobserver

c# - 从完整路径中排除基目录(以及文件名)

c# - 如何在 C# 中使用相对路径实例化新的 ChromeDriver?

c++ - 我如何将 C++ 和 Python 与 SWIG 集成

javascript - 如何从不同的域(谷歌搜索结果)中找出以前的 URL 是什么,或者如果没有以前的 URL?

magento - 从旧 url Magento 重定向到新 url

Python 未被识别为 Windows 7 中的内部或外部命令