Python 在Django,术语“如何使用?”;app";定义

Python 在Django,术语“如何使用?”;app";定义,python,django,django-apps,Python,Django,Django Apps,在我的Django应用程序中,我有很多代码,因此我将源文件拆分并放入子文件夹,如下所示: myproject/ myapp/ management/ __init__.py models/ __init__.py common.py users.py matches.py questionnaires/

在我的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
现在我不知道该在安装的应用程序中放入什么。是不是所有包含模型的文件夹?还是包含源的所有文件夹?如果包括所有子文件夹,是否还需要包括父文件夹?这是否应该与my
setup.py
packages
参数中的内容匹配


注意:我知道我可以将其重构为多个应用程序,但是(1)我希望所有这些功能都有一个通用的名称空间,因为它正在被重新分发;(2)我对我的问题的答案非常好奇。

将包含models.py文件的目录放在你的“应用程序”中。Django使用模型绑定到数据库,之后的一切都只是填充

DJango初创公司(非常精简)也是如此

manage.py 这将定义重要的部分,但让我们看看已安装的

设置.py 基本上是这样的,您可以在那里找到我的
models.py
和一些模型定义(它们不需要定义,但是
models.py
需要存在)

您的/app/name/models.py 现在回到settings.py

ROOT_URLCONF = 'path.to.urls' # this is the pythonic module path to your `urls.py` file
由于DJango在某些特定的位置查找某些内容,所以您的源代码可以在任何地方使用,但这主要是在您的settings.py中配置的

ROOT_URLCONF = 'path.to.urls' # this is the pythonic module path to your `urls.py` file
urls.py
文件中,可以定义url,例如

url(r'^/some/url/def/$', 'some.other.module.handler'),
只要
some.other.module
中的
handler
返回一个有效的HttpResponse对象,并且位于PYTHONPATH上,类的位置就无关紧要

Django对管理命令有一些详细说明,它们必须位于应用程序目录中(与模型目录相同),因此要定义这些命令(如果您的
model.py
文件位于不同的位置),您必须将它们放在数据目录中

例如,我有一个具有以下布局的项目

/app  
  /data  
     /commands  
        some_command.py
     models.py  
  /app  
     urls.py  
     settings.py
     ...other-source-files...
My
settings.py
simple说加载应用程序
数据
并指向
app.url
进行url配置,从那时起,无论源代码位于何处(大部分情况下)


我们这样做是为了将数据库表命名为data\u sometablenamevsapp\u sometablename(我不是这个选择的一部分,发生在我加入之前很久)

放置包含models.py文件的目录,即您的“app”。Django使用模型绑定到数据库,之后的一切都只是填充

DJango初创公司(非常精简)也是如此

manage.py 这将定义重要的部分,但让我们看看已安装的

设置.py 基本上是这样的,您可以在那里找到我的
models.py
和一些模型定义(它们不需要定义,但是
models.py
需要存在)

您的/app/name/models.py 现在回到settings.py

ROOT_URLCONF = 'path.to.urls' # this is the pythonic module path to your `urls.py` file
由于DJango在某些特定的位置查找某些内容,所以您的源代码可以在任何地方使用,但这主要是在您的settings.py中配置的

ROOT_URLCONF = 'path.to.urls' # this is the pythonic module path to your `urls.py` file
urls.py
文件中,可以定义url,例如

url(r'^/some/url/def/$', 'some.other.module.handler'),
只要
some.other.module
中的
handler
返回一个有效的HttpResponse对象,并且位于PYTHONPATH上,类的位置就无关紧要

Django对管理命令有一些详细说明,它们必须位于应用程序目录中(与模型目录相同),因此要定义这些命令(如果您的
model.py
文件位于不同的位置),您必须将它们放在数据目录中

例如,我有一个具有以下布局的项目

/app  
  /data  
     /commands  
        some_command.py
     models.py  
  /app  
     urls.py  
     settings.py
     ...other-source-files...
My
settings.py
simple说加载应用程序
数据
并指向
app.url
进行url配置,从那时起,无论源代码位于何处(大部分情况下)


我们这样做是为了将我们的数据库表命名为data\u sometablenamevsapp\u sometablename(我不是这个选择的一部分,发生在我加入之前很久)

谢谢!那么该文件是否需要调用
models.py
?在我的示例中,目录名为
models
,但文件本身是
matches.py
,等等。目录可以有您认为的任何名称,文件必须名为
models.py
,谢谢!那么该文件是否需要调用
models.py
?在我的示例中,目录名为
models
,但文件本身是
matches.py
,等等。目录可以有您认为的任何名称,文件必须名为
models.py