Django flatpages Пустой путь не соответствовал ни одному из этих - PullRequest
1 голос
/ 09 марта 2020

На странице администрирования я установил URL для плоских страниц Django на "/", который, как ожидается, будет отображаться в качестве домашней страницы на http://127.0.0.1: 8000 / . При этом я столкнулся с ошибкой:

Request Method:     GET
Request URL:    http://127.0.0.1:8000/
Using the URLconf defined in core.urls, Django tried these URL patterns, in this order:
    admin/
    <path:url>
The empty path didn't match any of these.

Но если я go до http://127.0.0.1: 8000 // с двойной строкой sh, то домашняя страница отображается правильно. Мой единственный файл urls.py выглядит так:

from django.contrib import admin
from django.urls import include, path
from django.contrib.flatpages import views

urlpatterns = [
    path('admin/', admin.site.urls),
]

urlpatterns += [
    path('<path:url>', views.flatpage),
]

И я полностью взял весь код из официального руководства . Как отобразить домашнюю страницу django на странице http://127.0.0.1: 8000 / ?

1 Ответ

0 голосов
/ 12 марта 2020

В дополнение к методу django .urls.path Django предлагает метод django .urls.re_path. Метод path предназначен для выполнения сопоставлений с точными строками, тогда как метод re_path предназначен для выполнения сопоставлений с шаблонными строками на основе регулярных выражений. В моем случае достаточно исправить это так:

urlpatterns += [
    re_path(r'^(?P<url>.*)$', views.flatpage),
]

В результате мы получаем правильную обработку запросов на http://127.0.0.1: 8000 / . Подробнее об использовании пути и методах re_path можно узнать по ссылке .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...