我正在使用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,你好, 没有匹配其中任何一个。
我做错了什么?
答案 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)