schema()函数如何在django.conf.urls包中可用?

时间:2012-02-25 01:55:37

标签: python django

对于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()函数?

2 个答案:

答案 0 :(得分:2)

我发现了我的问题:

  1. 我发现我认为自己成功运行是错误的 from django.conf.urls import pattern
    在Django 1.3.1中。代码实际上是
    from django.conf.urls.defaults import pattern

  2. 有两种不同的Django教程:

  3. 我为此打开了Django票据17770,它作为票证16932的副本被关闭。票证16933被打开并修复以弥补不同版本的文档/教程的混淆。但是,这对我来说并不明显。我添加了截图到16933,显示了如何查看您正在阅读的文档版本(并选择不同的版本)。 enter image description here

  4. 我很困惑,因为我认为我正在使用
    from django.conf.urls import...
    作为教程说明,我认为代码正常运行。但实际上我使用的urls.py代码是使用django-admin.py startproject创建的,而且此代码正确使用了from django.conf.urls.defaults import...为Django 1.3.1。这很有用。

  5. 我在教程4中出现了混乱,当时我从开发版本的教程中复制了polls/urls.py代码。该代码为from django.conf.urls import...,它会导致:

      

    Django版本:1.3.1
      异常类型:ImportError
      例外值:无法导入名称模式
      例外地点:/.../django_tutorial_1/polls/urls.py in,第1行

  6. 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和默认位置