django - Django flatpages 空路径与这些中的任何一个都不匹配
问题描述
在管理页面上,我将 Django 平面页面的 URL 设置为“/”,预计将在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.
但是,如果我用双斜杠访问http://127.0.0.1:8000//,那么主页会正确显示。我唯一的 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),
]
我完全从官方指南中获取了所有代码。如何在http://127.0.0.1:8000/显示 django 平面主页?
解决方案
除了 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/处得到了正确的请求处理。有关使用 path、re_path 方法的更多详细信息,请参见链接。
推荐阅读
- django - 如何在表单向导的特定步骤中同时使用 django 模型表单集和表单向导?
- hybris - 对于 CCV2 门户,有没有办法为 Spartacus / JS Storefront 指定特定于环境的属性?
- php - 如何使用 PHP 脚本中的 mail() 函数更快地接收邮件?
- excel - 我不想在使用 selenium 和 Excel VBA 自动化浏览器时等待整个页面加载
- javascript - ajax 不工作禁用选择标签中的重复数据和
- python - 发布http请求django restfamework中的问题
- laravel - '429 Too many requests' 在 laravel 中使用 guzzle
- reactjs - 无法使用 displayName 读取用户名
- python - 如何在 python 中使用 FFmpeg 进行桌面流而不缓冲或保存到文件
- machine-learning - 用户警告:一项或多项考试成绩不限:[nan nan nan nan nan nan nan nan nan]