我按照Django网站上的教程创建了一个简单的民意调查应用程序。但是,Django无法解析" // 127.0.0.1:8000/polls" ,即使我在mySite / urls.py中定义了正则表达式。我在virtualenv中执行此操作,安装了最新的Django(1.7)。
mySite / urls.py:
from django.conf.urls import patterns, include, url
from django.contrib import admin
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'^polls/', include('polls.urls')),
)
MYSITE /轮询/ urls.py:
from django.conf.urls import patterns, url
from polls import views
urlpatterns = patterns('',
url(r'^$', views.index, name='index'),
)
MYSITE /轮询/ views.py:
from django.shortcuts import render
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world. You're at the polls index.")
MYSITE / settings.py:
...
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'polls',
)
....
ROOT_URLCONF = 'mySite.urls'
我得到的错误:
Using the URLconf defined in mySite.urls, Django tried these URL patterns, in this order: ^admin/
The current URL, polls, didn't match any of these.
答案 0 :(得分:67)
我遇到了同样的问题。
事实证明我很困惑,因为多个目录名为" mysite"。
我错误地在根目录中创建了一个urls.py文件" mysite"目录(包含" manage.py"),然后粘贴在网站的代码中。
为了纠正它,我删除了这个文件,进入了mysite / mysite目录(包含" settings.py"),修改了现有的" urls.py"文件,并用教程代码替换代码。
简而言之,请确保您的urls.py文件位于正确的目录中。
答案 1 :(得分:8)
Django无法解析127.0.0.1:8000/polls
因为url配置定义为r'^polls/'
。
常用解决方法:
MYSITE / urls.py:
from django.conf.urls import patterns, include, url
from django.contrib import admin
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'^polls/', include('polls.urls')),
)
注意:的
每当Django遇到include()时,它会删除与该点匹配的URL的任何部分,并将剩余的字符串发送到包含的URLconf
以进行进一步处理。
MYSITE /轮询/ urls.py:
from django.conf.urls import patterns, url
from polls import views
urlpatterns = patterns('polls.views',
url(r'^$', 'index', name='index'),
)
注意:您可以使用patterns()函数的第一个参数来指定应用于每个视图函数的前缀,而不是为urlpatterns中的每个条目输入该内容。
回答
如果您想访问127.0.0.1:8000/polls
注意:不带斜线
使用基于视图的网址
url(r'^polls', 'polls.views.index', name='index'),
所以现在你可以访问127.0.0.1:8000/polls
而不用斜杠。
答案 2 :(得分:3)
您正在访问http://yourdomain.com/,并且您没有为“/".
定义任何网址您有两种选择:
如果您想访问民意调查应用程序的索引页面,则必须输入以下URL:yourdomain.com/polls
您还可以修改mySite / urls.py文件,以便从yourdomain.com进行访问
from django.conf.urls import patterns, include, url
from django.contrib import admin
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'^$', include('polls.urls')),
)
答案 3 :(得分:2)
要通过遵循本教程,对于遇到此问题的初学者明确答案,项目根URLconf与settings.py位于同一文件夹中,即:
mysite/mysite/urls.py
只需确保导入'包含'。代码如下:
from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^polls/', include('polls.urls')),
]
所以 mysite的/ mysite的/ settings.py:
该行应为:
ROOT_URLCONF =' mysite.urls'
您不需要创建全新的根URLconf。
答案 4 :(得分:1)
根据您放置ROOT urls.py的位置,您可以相应地设置ROOT_URLCONFIG,如果您将其放在包含manage.py的最外层文件夹中,那么“urls”就可以了。如果你在其他文件夹中有它,那么你必须做“.urls”
归功于jerryh91
的答案有关其工作原理的详情,请查看How Django processes a request
答案 5 :(得分:1)
您将urls.py文件夹放入外部MySite文件夹中,您可以将其放在内部文件夹中,因此它不是mySite / urls.py,而是mySite / mySite / urls.py:
当我完成教程时,遇到了同样的错误
答案 6 :(得分:1)
访问127.0.0.1:8000/polls
的另一种方法是在访问127.0.0.1:8000
时重定向浏览器。这是通过编辑.../mysite/mysite/urls.py
完成的,如下所示:
from django.conf.urls import include, url
from django.contrib import admin
from polls import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^polls/', include('polls.urls', namespace='polls')),
url(r'^$', views.index, name='index'),
]
答案 7 :(得分:1)
找不到页面?
如果您在此处看到错误页面,请检查您是否要转到http://localhost:8000/polls/,而不是http://localhost:8000/。
答案 8 :(得分:0)
实际上问题是你没有注意到这一点 mysite / urls.py和polls / urls.py是两个不同的文件,你修改了polls / urls.py而不是将mysite / urls.py放在urls.py文件中...... mysite \ mysite文件夹。
答案 9 :(得分:0)
就我而言,这是一个愚蠢的错误。我想整合插件django-tinymce,并测试它。因此,按照this指南,我执行了第3步并将变量导出到路径中。当服务器再次运行时,我收到了未找到的错误,显示消息:
使用testtinymce.urls中定义的URLconf,Django尝试了这些URL 模式,按此顺序:....
但我不知道究竟是什么,直到我记得导出变量 DJANGO_SETTINGS_MODULE
在终端中运行unset DJANGO_SETTINGS_MODULE
解决了我的问题。希望它也可以帮助别人。
答案 10 :(得分:0)
在Mysite/urls.py
url(r'^$', views.index, name='index'),
并检查。如果您已正确创建项目,它应该可以正常工作。如上所述,可能碰巧有多个文件如此混乱。
答案 11 :(得分:0)
2017-10-05_12:03~ / mysite / mysite
$ vi urls.py
2017-10-05_12:04~ / mysite / mysite
$ cd ../ ..
2017-10-05_12:04~
$ mv mysite SENSIBLE_NAME_DJANGO_ROOT
答案 12 :(得分:0)
我遇到了同样的问题,并通过在http://server:port/之后添加/ polls来解决了这个问题,因此服务器中的最终地址如下所示: http://server:port/polls