NameError:名称view_post未定义[重复]
Posted
技术标签:
【中文标题】NameError:名称view_post未定义[重复]【英文标题】:NameError: Name view_post is not defined [duplicate] 【发布时间】:2018-08-01 01:30:17 【问题描述】:更新
我为另一个简单的 Django 问题道歉,但我找不到我想要的。
项目:博客 我正在尝试使用 Django 2.0 对应用程序进行 URL 设计
mysite/url.py
Error after run
server error
【问题讨论】:
你还没有在urls.py中导入view_post 如何在 urls.py 中导入? 看我有帖子作为答案 请不要链接到屏幕截图。复制并粘贴答案中的代码和回溯。 【参考方案1】:Django 2.0 为 url 添加了新的 path
函数:https://docs.djangoproject.com/fr/2.0/ref/urls/#path
path
不再使用正则表达式。
你有两个解决方案
1) 使用 path
并将 url 模式更改为新的 django 格式
from django.urls import path
urlpatterns = [
url('/post/<int:pk>/', ...)
]
2) 保留正则表达式并使用re_path
from django.urls import re_path
urlpatterns = [
re_path('^/post/(?<pk>[0-9]+)/$', ...)
]
请注意,仍然可以使用url
函数,但可能会在下一个版本中被弃用。在 Django 2.0 中已将其重命名为 re_path
【讨论】:
【参考方案2】:更新你的 urls.py 文件。
你需要在 urls.py 文件中导入view_post
from blog.views import view_post
#from appname.file.py import (class/func)name
由于您在 urls.py 中使用 view_post
,因此您还需要将其导入该文件中。
【讨论】:
找不到页面 (404) 请求方法:GET 请求 URL:127.0.0.1:8000/post/1 使用 mysitee.urls 中定义的 URLconf,Django 尝试了这些 URL 模式,顺序为:admin/ blog/ ^post/ (?Ppost/(?P<pk>\d+)/$
更新你的网址post/(?P<pk>[0-9]+)/$
。
我想要127.0.0.1:8000/post/1 第一篇博文
用post/(?P<pk>\d+)/$
更新您的url.py
post/(?P<pk>[0-9]+)/$
,当您点击127.0.0.1:8000/post/1
时,它将返回您想要的结果。以上是关于NameError:名称view_post未定义[重复]的主要内容,如果未能解决你的问题,请参考以下文章