Как определить URL, который принимает все виды строк в Django - PullRequest
7 голосов
/ 24 сентября 2011

В django я определил url следующим образом:

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

Но, когда я ввожу строковые данные, такие как ibrahim.yilmaz, ibrahi! M или ibrahim@ibrahim.com, он возвращает http 404. Так как можноя пишу URL, который принимает все виды строк?

любая помощь будет оценена.

Ибрагим

Ответы [ 3 ]

15 голосов
/ 24 сентября 2011

Django использует регулярные выражения для сопоставления входящих запросов.В питоне точка (.) Соответствует любому символу, кроме новой строки.См. docs для получения дополнительной информации и попробуйте:

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

Также имейте в виду, что при этом будет принят любой символ (включая косую черту), который может быть нежелателен для вас.Обязательно проверьте, чтобы убедиться, что все работает так, как вы ожидаете.

1 голос
/ 15 февраля 2018

В Django> = 2.0 вы можете реализовать следующим образом.

from django.urls import path

urlpatterns = [
    ...
    path('polls/<string>/$','polls.views.detail')
    ...
]
0 голосов
/ 07 марта 2018

Для Django 2.0


import re_path в urls.py файл выглядит так:
из django.urls import re_path

, затем в urlpatterns напишите следующий код:

urlpatterns = [ re_path ('prefixs /.*', your_ViewClass_name.as_view ()),]

...