Regex Url Conf Джанго - PullRequest
       5

Regex Url Conf Джанго

0 голосов
/ 02 августа 2010

Я пытаюсь запустить следующую настройку.

  1. Плоские страницы: где все мои статические сайты (например: about, contact, ..)

  2. Динамические страницы:

Здесь я пытаюсь связать одну из плоских страниц со стартовым сайтом:

регулярное выражение в URL-адресе этого стартового сайта, которое я пробовал, было:

(r'^myapp/start/(\d+)/$', 'mysite.views.def_that_should_just_show_hello_world'),

Во взглядах у меня было:

def def_that_should_just_show_hello_world(request):
 return HttpResponse("Hello experiment world")

Если я пойду к

/ myapp / я получаю 404: ни один FlatPage не соответствует данному запросу. / myapp / start / я получаю 404: ни один FlatPage не соответствует данному запросу. / myapp / start / 1 Я получаю

Тип исключения: ошибка типа def_that_should_just_show_hello_world принимает ровно 1 аргумент (2 дано)

Я думал, что с этой настройкой я получу "Hello экспериментальный мир" на КАЖДОЙ странице.

Где я ошибся? Я не понимаю подход нескольких сайтов в регулярных выражениях. Что мне нужно сделать, чтобы распечатать привет на всех этих сайтах? И затем, что мне нужно сделать, чтобы отобразить 1 изображение на всех этих сайтах?

Большое спасибо за помощь!

Ответы [ 2 ]

1 голос
/ 02 августа 2010

В вашем регулярном выражении есть соответствующая группа - бит (\d+).

Для этого требуется один или несколько числовых символов в конце URL для этого представления.Если вы не включите число в конце, это регулярное выражение не будет соответствовать URL.(сопоставление URL работает как любое другое сопоставление регулярного выражения).

Когда вы включаете число, например./myapp/start/1 тогда у вас есть другая проблема.Поскольку существует соответствующая группа, часть URL в скобках будет передана как еще один аргумент вашему представлению.Представления всегда передают запрос в качестве первого параметра, но в этом случае «1», совпадающий с (\d+), предоставляется в качестве второго аргумента.Вот почему в этом случае вы запугиваете TypeError.

Документация Django содержит много информации о том, как работает рассылка URL s, прочитайте это и посмотрите, имеет ли это смысл!*

0 голосов
/ 25 сентября 2018
from your_app_name import views
from django.conf.urls import url


   urlpatterns = [
       url(r'^$',views.method_name,name ='index'),
       path('admin/', admin.site.urls), 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...