如何定义在django中接受每一个字符串的url

时间:2011-09-23 20:25:17

标签: python django django-urls

在django中,我将url定义为

(r'^checkstring/(?P<string>\w+)/$',views.check_str,name='check str')

但是,当我输入像ibrahim.yilmaz,ibrahi!m或ibrahim@ibrahim.com这样的字符串输入时,它会返回http 404。 那么如何编写接受每一个字符串的url?

任何帮助将不胜感激。

易卜拉欣

3 个答案:

答案 0 :(得分:15)

Django使用正则表达式来匹配传入的请求。在python中,点(。)匹配除换行符之外的任何字符。有关详细信息,请参阅docs,然后尝试:

(r'^checkstring/(?P<string>.+)/$',views.check_str,name='check str')

另请注意,这将接受任何可能不适合您的角色(包括正斜杠)。一定要进行测试,以确保一切正常。

答案 1 :(得分:1)

在Django&gt; = 2.0中,您可以按以下方式实现。

from django.urls import path

urlpatterns = [
    ...
    path('polls/<string>/$','polls.views.detail')
    ...
]

答案 2 :(得分:0)

对于Django 2.0

urls.py 文件中导入 re_path 像这样:来自 django.urls 导入 re_path

然后在urlpatterns中编写以下代码:

urlpatterns = [ re_path (&#39;前缀/.*',your_ViewClass_name.as_view()),]