【问题标题】:Page not found, URL not resolved未找到页面,未解析 URL
【发布时间】:2019-04-02 14:01:12
【问题描述】:

我正在尝试通过在 Web 浏览器中粘贴 URL http://127.0.0.1:8000/upload_results/UniEX_HG1_A15 来调用我的 views.py 中的函数, 但请求失败,我看不出为什么我的 URL 模式不起作用。

错误:

Page not found (404)
Request Method:     GET
Request URL:    http://127.0.0.1:8000/upload_results/UniEX_HG1_A15

Using the URLconf defined in varview.urls, Django tried these URL patterns, in this order:

    ^$ [name='show_index']
    ^admin/
    ^upload/ [name='varview_submission']
    ^upload_results/(?P<project_id>[0-9A-Za-z_]+)/ [name='varview_upload_results']
    ^validate/(?P<project_id>[0-9A-Za-z_]+)/ [name='varview_validate']
    ^filterallprojects/[0-9A-Za-z_]+ [name='varview_filterallprojects']
    ^project/(?P<project_id>[0-9A-Za-z_]+)/wgsmetrics/ [name='varview_wgsmetrics']
    ^project/(?P<project_id>[0-9A-Za-z_]+)/targetgenecoverage/ [name='varview_targetgenecoverage']
    ^project/(?P<project_id>[0-9A-Za-z_]+)/(?P<display_option>[0-9A-Za-z_]+)/ [name='varview_project']
    ^media\/(?P<path>.*)$

The current path, upload_results/UniEX_HG1_A15, didn't match any of these.

这是我的 urls.py:

from django.conf import settings
from django.conf.urls import url
from django.conf.urls.static import static
from django.contrib import admin
from varview import views
from varview.forms import DataUploaderForm1, DataUploaderForm2, GetProjectIdForm

urlpatterns = [
    url(r'^$', views.show_index, name='show_index'),
    url(r'^admin/', admin.site.urls),
    url(r'^upload/', views.init_submission, name='varview_submission'),
    url(r'^upload_results/(?P<project_id>[0-9A-Za-z_]+)/', views.upload_results, name='varview_upload_results'), 
]

这已经在一段时间前工作了,但与此同时我做了很多改变。 最新的变化是包括芹菜(djcelery)。 索引页面和其他页面仍然有效。我已经阅读了许多与 django-url 相关的帖子,但无法弄清楚。

感谢您的帮助。

【问题讨论】:

  • 请注意,您应该在正则表达式的末尾添加美元(使用include() 时除外)。例如,将'^upload/' 更改为'^upload/$',否则将匹配/upload/foo/ 以及/upload/

标签: django django-urls django-2.1


【解决方案1】:

注意你的网址有一个斜杠,

^upload_results/(?P<project_id>[0-9A-Za-z_]+)/

但您尝试访问的 URL 不带斜杠

/upload_results/UniEX_HG1_A15

通常,Django 会重定向到带有斜杠的 URL。可能您的MIDDLEWARE 设置不正确,或者您将APPEND_SLASH 设置为False

【讨论】:

  • 感谢您的快速回答。很明显,我是 Django 和 Python 的新手,也许这可以解释为什么我没有得到它。
猜你喜欢
  • 1970-01-01
  • 2015-05-19
  • 2015-02-21
  • 2015-06-22
  • 1970-01-01
  • 2012-05-18
  • 1970-01-01
  • 1970-01-01
  • 2018-08-13
相关资源
最近更新 更多