对于Django 1.3.1,哪些源代码可以执行from django.conf.urls import patterns
?
在Django 1.3.1 source code for the django.conf.urls package中,__init__.py
为空,因此没有代码或__all__
变量。 patterns()
函数的代码似乎位于defaults.py
,其中包含__all__
变量。
Python如何在django.conf.urls包中包含pattern()
函数?
答案 0 :(得分:2)
我发现了我的问题:
我发现我认为自己成功运行是错误的
from django.conf.urls import pattern
在Django 1.3.1中。代码实际上是
from django.conf.urls.defaults import pattern
有两种不同的Django教程:
from django.conf.urls import pattern
from django.conf.urls.defaults import pattern
我为此打开了Django票据17770,它作为票证16932的副本被关闭。票证16933被打开并修复以弥补不同版本的文档/教程的混淆。但是,这对我来说并不明显。我添加了截图到16933,显示了如何查看您正在阅读的文档版本(并选择不同的版本)。
我很困惑,因为我认为我正在使用
from django.conf.urls import...
作为教程说明,我认为代码正常运行。但实际上我使用的urls.py
代码是使用django-admin.py startproject
创建的,而且此代码正确使用了from django.conf.urls.defaults import...
为Django 1.3.1。这很有用。
我在教程4中出现了混乱,当时我从开发版本的教程中复制了polls/urls.py
代码。该代码为from django.conf.urls import...
,它会导致:
Django版本:1.3.1
异常类型:ImportError
例外值:无法导入名称模式
例外地点:/.../django_tutorial_1/polls/urls.py in,第1行
jdi,谢谢你的帮助。虽然你的答案并不完全是我想要的,但它鼓励我继续前进。我的问题陈述了一个错误的事实,我后来发现(按照上面的#1)。
答案 1 :(得分:1)
它位于urls包内的默认模块中。
>>> from django.conf.urls.defaults import *
>>> patterns
<function patterns at 0x102444410>
https://code.djangoproject.com/browser/django/tags/releases/1.3.1/django/conf/urls/defaults.py
我意识到在django文档中他们会像这样引用:https://docs.djangoproject.com/en/dev/topics/http/urls/#example
from django.conf.urls import patterns, url, include
但是(至少对我而言)它会产生错误。它可能已被包含在该位置的某一点,但当前的源不再显示它。每个1.3项目我都从默认模块中导入模式()。
<强>更新强>
django dev分支docs将模式称为urls包下的模式。但稳定的1.3文档指的是它处于违约状态。
https://docs.djangoproject.com/en/dev/topics/http/urls/#how-django-processes-a-request
https://docs.djangoproject.com/en/1.3/topics/http/urls/#how-django-processes-a-request
所以我想说稳定的访问方式是通过默认模块。您最有可能使用django的dev分支,因为使用stable 1.3创建一个新项目甚至定义了默认的urls.py和默认位置