在我的Django应用程序中,我有很多代码,因此我将源文件进行了拆分,并将其放入子文件夹中,如下所示:
myproject/
myapp/
management/
__init__.py
models/
__init__.py
common.py
users.py
matches.py
questionnaires/
demographics/
templates/
__init__.py
models.py
views.py
...
views/
__init__.py
abstract.py
concrete.py
现在我很困惑要输入什么INSTALLED_APPS
。是否所有包含模型的文件夹?还是所有包含源的文件夹?如果我包括所有子文件夹,是否还需要包括父文件夹?这应该与我setup.py
的packages
论点相符吗?
注意:我知道我可以将其重构为多个应用程序,但是(1)我希望所有这些功能都具有一个公共的名称空间,因为它已经被重新分配了;(2)我不知道我的问题的答案。
放入包含models.py文件的目录,即您的“ App”。Django使用模型绑定到数据库,之后的所有内容都只是填充。
DJango初创公司是如此(非常苗条)
# The important part
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "path.to.your.settings")
这将定义重要的部分,但让我们看一下已安装的部分。
INSTALLED_APPS=(
'your.app.name'
)
基本上说明了这一点,您将在models.py
此处找到我和一些模型定义(它们不必定义,但models.py
需要存在)
class SomeModel(models.Model):
#... model definition ...
pass
现在回到您的settings.py
您的来源可以在任何地方使用,因为DJango会在某些特定位置查找某些内容,但这主要是在您的settings.py中配置的
ROOT_URLCONF = 'path.to.urls' # this is the pythonic module path to your `urls.py` file
在urls.py
文件中,您可以定义一个网址,例如
url(r'^/some/url/def/$', 'some.other.module.handler'),
只要handler
fromsome.other.module
返回一个有效的HttpResponse对象,并且该对象位于PYTHONPATH上,则该类的位置无关紧要。
Django有一些有关管理命令的细节,它们必须位于应用程序目录(与模型目录相同)中,因此要定义这些命令(如果model.py
文件位于其他位置),则必须将它们放在数据目录中
例如,我有一个具有以下布局的项目
/app
/data
/commands
some_command.py
models.py
/app
urls.py
settings.py
...other-source-files...
我的settings.py
简单说法是,加载应用程序data
并指向app.url
url配置,从那时开始,无论您的源位于何处(大部分情况下)都没有关系。
我们这样做是为了将数据库表命名为data_sometablename vs app_sometablename(我不是这个选择的一部分,发生在我加入之前很久)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句