0

django noobie。我一直在阅读教程,但是在 urlpatterns 中,他们使用 url 而不是现在在 django 2.0 中引入的路径,我想让 /appname/anything-gibberish 将用户带回到我在 /appname/ 中给出的视图

urlpatterns = [
    path('', views.index, name='index'),
    path('contact/', views.contact, name='contact'),
]

我想要 127.0.0.1:8000/contact/asaskhask 去views.contact 有没有办法不使用url和正则表达式来做到这一点?

4

2 回答 2

6

我目前也在研究 django2。您应该考虑在 django 文档上投入更多时间

urlpatterns = [
        path('', views.index, name='index'),
        path('contact/<str:contact_name>/', views.contact, name='contact'),
    ]

这里str告诉 django 期望一个字符串,因为我期望名称没有任何数字或特殊字符。如果数字只像<int:contact_number>. 或者好老蛞蝓

使用此链接

哦,万一你错过了,匹配uid,pk或token就不用再头疼了。它全部内置在 django 2.0 中。耶

path('<int:pk>/', views.DetailView.as_view(), name='detail'),
path('activate/<uidb64>/<token>/', UserActivate.as_view(), name='activate'),
于 2017-12-24T12:49:29.007 回答
-2

我找到了解决方案。通过使用re__path代替path,您将能够使用正则表达式

urlpatterns = [
    path('', views.index, name='index'),
    re_path('contact/', views.contact, name='contact'),
]
于 2017-12-23T17:38:17.347 回答