Django - 当前的URL,与其中任何一个都不匹配
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django - 当前的URL,与其中任何一个都不匹配相关的知识,希望对你有一定的参考价值。
from django.conf.urls import include, url, patterns
from django.contrib import admin
#urlpatterns = [
# url(r'^mypage/', include('mypage.urls')),
# url(r'^admin/', admin.site.urls),
#]
urlpatterns = patterns('',
url(r'^$', 'mypage.views.home', name='home'),
url(r'^admin/', admin.site.urls),
)
未注释的代码工作正常。但是根据教程,注释代码也必须工作。但它显示错误“当前网址没有匹配任何这些”。代码路径是/ownblog/ownblog/urls.py
urlpatterns = patterns('',
url(r'^$', 'views.home', name='home'),
)
上面的代码在ownblog / mypage / urls.py中
def home(request):
return HttpResponse("Hello, world. You're at the polls index.")
上面的代码在ownblog / mypage / views.py中我缺少什么
您访问http://localhost:8000/
时会出现错误消息,因为您尚未在注释代码中定义/的url模式。教程告诉你去http://localhost:8000/polls/
。在您的情况下,将其更改为http://localhost:8000/mypage/
,因为您使用mypage
而不是polls
。
第二个错误No module named views
是因为你在你的url模式中使用了字符串'views.home'
而不是可调用的views.home
。确保包含导入。
from . import views
urlpatterns = [
url(r'^$', views.home, name='home'),
]
我注意到你没有密切关注1.9 tutorial。例如,你使用的是patterns()
和像'mypage.views.home'
这样的字符串,它们都是自Django 1.8以来都过时了。我认为你会发现在开始更改大量内容之前完全按照教程进行操作很有用。
django的新功能需要新的解决方案......
from django.conf.urls import url
from django.contrib import admin
from polls.views import urls
urlpatterns = [
...
url(r'^polls/$', urls),
]
在浏览器中输入,在django 1.10中测试
请在django 1.10中下载一个有效的“HelloWorld”示例
https://mega.nz/#!qFsgBbRD!lAKKprkMLmhJcaZ8h5NPxkZcfQpB8qrh1nU4rSSaRAo
您可以在urls.py文件中的urlpatterns上方看到django的注释行。
将有一种设置您要导入的URL的路径的模式,您可以复制粘贴并根据您的视图名称更改属性。
我这样说是因为urlpatterns因版本而异,所以要根据你的django版本来编写url,你可以参考它。
我认为这只是你的语法错误。也许你正在关注一个旧的教程。试试这个:
url(r'^$',views.home,name='home')
如果这不能解决你的问题,试试这个(不推荐个人;我在这个地区仍有疑问):
from django.urls import path
from mypage(appName) import views
...
urlpatterns = [
path(r'^$', views.home, name='home'),
path(r'^admin/', admin.site.urls),
]
这在我的案例中有效,但我仍然不确定为什么!
以上是关于Django - 当前的URL,与其中任何一个都不匹配的主要内容,如果未能解决你的问题,请参考以下文章
Django - 当前的 URL 与这些中的任何一个都不匹配