未找到Python网址

时间:2017-08-09 00:38:03

标签: python django

我正在使用this Python教程,但看起来作者没有更新它,因为代码使用了弃用的Python代码,特别是:

from django.conf.urls import patterns

    urlpatterns = patterns('',
        (r'^hello-world/$', index),
    )

我查找了Django文档和其他StackOverFlow问题,但我无法解决如何使用当前方法。这是我添加以替换上面的内容:

urlpatterns = [
    url(r'^hello-world$', hello),
]

这是完整的hello.py文件:

import sys

from django.conf import settings
from django.conf.urls import url
from django.http import HttpResponse
from django.core.management import execute_from_command_line

settings.configure(
    DEBUG=True,
    SECRET_KEY='thisisabadkeybutitwilldo',
    ROOT_URLCONF=sys.modules[__name__],
)

def index(request):
    return HttpResponse('Hello, World')

import views

urlpatterns = [
    url(r'^hello-world$', hello),
]

if __name__ == "__main__":
    execute_from_command_line(sys.argv)

这是我从Python得到的错误消息:

  

使用 main 中定义的URLconf,Django尝试了这些URL   模式,按此顺序:^ $ [name =' hello']当前URL,你好,   没有匹配其中任何一个。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

您提供的代码不起作用。我测试了链接教程中的代码,它在1.8中运行良好。您的代码具有随机导入(import views)和未定义的变量(hello)。所以我对你的代码进行了逻辑编辑并测试了它,它在1.11中很好:

import sys

from django.conf import settings
from django.conf.urls import url
from django.http import HttpResponse
from django.core.management import execute_from_command_line

settings.configure(
    DEBUG=True,
    SECRET_KEY='thisisabadkeybutitwilldo',
    ROOT_URLCONF=sys.modules[__name__],
)

def index(request):
    return HttpResponse('Hello, World')

urlpatterns = [
    url(r'^hello-world$', index),
]

if __name__ == "__main__":
    execute_from_command_line(sys.argv)