Django - 当前 URL, , 不匹配任何这些
Django - The current URL, , didn't match any of these
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),
)
未注释的代码工作正常。但是根据教程,注释代码也应该可以工作。但是它显示了 "The current url didnt match any of these" 的错误。代码路径为/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 文件中的 url 模式上方看到 django 的注释行。
这里会有一个设置你要导入的url路径的模式,你可以复制粘贴那个,根据你的视图名称更改属性。
我这么说是因为 urlpatterns 因版本而异所以写 url 根据你的 django 版本你可以参考。
我认为这只是您的语法错误。
也许您正在学习旧教程。
试试这个:
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),
]
这对我的案例有用过一次,但我仍然不确定为什么!
看起来你在看旧教程,试试这个
from django.contrib import admin
from django.urls import include, path
from polls<your_app> import views
urlpatterns = [
...
path('', views.home, name = 'home'),
]
从 django.conf.urls 导入 url、包含
变化:
urlpatterns = [
path('admin/', admin.site.urls),
path('polls', include('polls.urls')),
到
urlpatterns = [
url(r'^polls/', include('polls.urls')),
url(r'^admin/', admin.site.urls),
]
我也遇到过这个问题。有时您的浏览器由于启动问题(来自 IDE/Code 编辑器端)而无法加载页面,因此,只要您在浏览器中执行 清空缓存并重新加载 然后重新-运行 命令然后它会完美地工作。
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),
)
未注释的代码工作正常。但是根据教程,注释代码也应该可以工作。但是它显示了 "The current url didnt match any of these" 的错误。代码路径为/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 文件中的 url 模式上方看到 django 的注释行。
这里会有一个设置你要导入的url路径的模式,你可以复制粘贴那个,根据你的视图名称更改属性。
我这么说是因为 urlpatterns 因版本而异所以写 url 根据你的 django 版本你可以参考。
我认为这只是您的语法错误。 也许您正在学习旧教程。 试试这个:
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),
]
这对我的案例有用过一次,但我仍然不确定为什么!
看起来你在看旧教程,试试这个
from django.contrib import admin
from django.urls import include, path
from polls<your_app> import views
urlpatterns = [
...
path('', views.home, name = 'home'),
]
从 django.conf.urls 导入 url、包含
变化:
urlpatterns = [
path('admin/', admin.site.urls),
path('polls', include('polls.urls')),
到
urlpatterns = [
url(r'^polls/', include('polls.urls')),
url(r'^admin/', admin.site.urls),
]
我也遇到过这个问题。有时您的浏览器由于启动问题(来自 IDE/Code 编辑器端)而无法加载页面,因此,只要您在浏览器中执行 清空缓存并重新加载 然后重新-运行 命令然后它会完美地工作。