使用django 1.4并且已经看到,当您使用startproject它时,现在在项目中创建一个具有相同名称的文件夹.
-myproject/
manage.py
myproject/
settings.py
urls.py
Run Code Online (Sandbox Code Playgroud)
以前我的网址可以输入
ROOT_URLCONF = 'urls'
Run Code Online (Sandbox Code Playgroud)
但那不再有效.我现在应该用项目名称作为前缀吗?即
ROOT_URLCONF = 'myproject.urls'
Run Code Online (Sandbox Code Playgroud)
- 在我的urls.py导入设置中,但现在我必须用它作为前缀from myproject import settings.
我认为带有项目名称的变量前缀是针对django标准的,因为它打破了可重用性?
hwj*_*wjp 54
我只想补充一点,它会强制你在使用前缀时使用前缀myproject.urls,但它并不会强迫你使用任何一种方式来应用你的应用程序.您可以选择将应用程序存储在顶级文件夹中:
myproject
|-- manage.py
|-- myproject
| |-- __init__.py
| |-- settings.py
| |-- urls.py
| `-- wsgi.py
`-- polls
|-- __init__.py
|-- models.py
|-- tests.py
`-- views.py
Run Code Online (Sandbox Code Playgroud)
这是您使用时的默认设置.python manage.py startapp polls
在这种情况下,您可以使用from polls.models import Whatever
或者,您可以:
mkdir myproject/polls
python manage.py startapp polls myproject/polls
Run Code Online (Sandbox Code Playgroud)
你会得到这个:
myproject
|-- manage.py
`-- myproject
|-- __init__.py
|-- polls
| |-- __init__.py
| |-- models.py
| |-- tests.py
| `-- views.py
|-- settings.py
|-- urls.py
`-- wsgi.py
Run Code Online (Sandbox Code Playgroud)
在这种情况下,你将不得不from myproject.polls.models import Whatever......
因此前者对于您认为可以在其他项目中重复使用的应用程序更好,而后者对于与项目的其他部分紧密耦合的应用程序更好.
Ala*_*air 16
是的,前缀ROOT_URLCONF为您的项目名称:
ROOT_URLCONF = 'myproject.urls'
Run Code Online (Sandbox Code Playgroud)
您不应该直接导入设置(请参阅在Python代码中使用设置).而是使用以下内容,它适用于旧项目布局和新项目布局.
from django.conf import settings
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7609 次 |
| 最近记录: |