django - URLpattern 匹配没有按预期工作
问题描述
我想要的是
我正在运行Django 项目教程的第一步,并且已经有一些我无法做到的事情。
include() 背后的想法是让即插即用 URL 变得容易。由于投票在它们自己的 URLconf (polls/urls.py) 中,它们可以放在“/polls/”下,或“/fun_polls/”下,或“/content/polls/”下,或任何其他路径根目录下,并且该应用程序仍然可以运行。
我根据需要构建了所有东西,我的“架子”服务器工作正常(在此处调试,在 localhost 上运行)。我在shelf.urls 中设置urlpatterns,其中第一个尝试包含'bluebook.urls'。
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('bluebook/', include('bluebook.urls')),
path('admin/', admin.site.urls),
]
当我去http://127.0.0.1:8000/bluebook/时,它工作正常并加载了我设置的views.index。
什么不起作用
当我转到http://127.0.0.1:8000/thebluebook/时,它会抛出 404。它定义正则表达式匹配不起作用:
Using the URLconf defined in shelves.urls, Django tried these URL patterns, in this order:
1. bluebook/
2. admin/
The current path, thebluebook/, didn't match any of these.
它与http://127.0.0.1:8000/the_bluebook/或http://127.0.0.1:8000/go/bluebook/相同。
我试过的
我没有写太多代码,所以没有太多可以加入到这个总结中。虽然错误消息只提到了shelf.urls,但我检查了bluebook.urls 是否设置为在从shelf.urls 重定向后接受任何正则表达式:
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
我检查了Django 教程第 1 部分错误:URL 与 URL 模式不匹配,并尝试将 ROOT_URLCONF 从“shelves.urls”更改为“urls”,但它抛出了一个 ERR_CONNECTION_REFUSED 而不是 404,无论我放在http://127.0 之后。 0.1:8000/,基本上该网站不再工作了。
我在 Django 网站上查看了Page not found 404?但我网站的 urls.py 位于子文件夹mysite/,而不是父文件夹 mysite/。
我也试过
urlpatterns = [
path('bluebook/', 'bluebook.urls'),
path('admin/', admin.site.urls),
]
但它也不起作用。
基本上,我的所有设置对我来说都是正确的,因为调用确切的 URLpattern 可以按预期工作。只有正则表达式匹配似乎不起作用。
FWIW,我正在使用 JetBrain 的 PyCharm 来编辑代码并设置 venv,没有插件,但我认为它不会影响 Django 代码的运行。
Python 版本: win32 上的 Python 3.6.5(v3.6.5:f59c0932b4,2018 年 3 月 28 日,17:00:18)[MSC v.1900 64 位(AMD64)]
Django 版本: 2.0.7
PyCharm 版本: 2018.1.4
Chrome 版本:版本 67.0.3396.99(官方构建)(64 位)
解决方案
您的网址中没有包含“thebluebook”。你有path('bluebook/', include('bluebook.urls')),
,path('', views.index, name='index'),
这意味着你可以做http://127.0.0.1:8000/bluebook/any/thing/here/但你不能http://127.0.0.1:8000/any/thing/here/bluebook/。
推荐阅读
- c# - 如何在 inkcanvas 上绘制可修改的折线
- php - 如何使用 Stripe webhook / 端点获取客户电子邮件
- java - 搜索 arrayLists 的映射树
- python - 如何重定向到 url 的新 ID
- elixir - 如何将 erlang 模块 (wxImage) const/array 转换为 Elixir 中的列表?
- python - 如何删除包含“_id”的所有列 - Python
- c# - Python SignalR 客户端应用程序 - 如何在连接到 SignalR Hub 后获取 ConnectionId
- r - 填补 xts 中日期之间的空白
- javascript - 快递中未处理的异常
- angular - https://api.imgur.com/3/image 的 Http 失败响应