在Django中,“ app”一词是如何定义的?

雷克斯

在我的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.pypackages论点相符吗?

注意:我知道我可以将其重构为多个应用程序,但是(1)我希望所有这些功能都具有一个公共的名称空间,因为它已经被重新分配了;(2)我不知道我的问题的答案。

迈克·麦克马洪

放入包含models.py文件的目录,即您的“ App”。Django使用模型绑定到数据库,之后的所有内容都只是填充。

DJango初创公司是如此(非常苗条)

manage.py

# The important part
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "path.to.your.settings")

这将定义重要的部分,但让我们看一下已安装的部分。

settings.py

INSTALLED_APPS=(
   'your.app.name'
)

基本上说明了这一点,您将在models.py此处找到我和一些模型定义(它们不必定义,但models.py需要存在)

您的/ app /名称/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'),

只要handlerfromsome.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.urlurl配置,从那时开始,无论您的源位于何处(大部分情况下)都没有关系。

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何更改Moodle测验中的“问题”一词?

如何从自定义类的智能感知/自动完成选项中删除“属性”一词?

从joomla中我的自定义非mvc组件的网址中删除“组件”一词

使用Play框架在Scala函数定义中“ Action”一词做什么?

如何在向量的每个字符串中仅保留唯一词

如何理解规范中脚本标签的“非阻塞”一词?

如何从联系表7发送的邮件中删除“ wordpress”一词

如何删除左上角任务栏中的“应用程序”一词

在N4140的第5.19 / 2.3条中,“未定义”一词是什么意思?

一列中的唯一词总数-R

关于Linux中的“挂载”一词的困惑

data.frame中唯一词的列表

计算列表中唯一词的数量

在讨论模块中更改“聊天”一词

wx在wxWidgets一词中是什么意思?

Playstore中的“ Siri”一词是“禁止”的吗?

从Sphinx文档中删除“模块”一词

为什么在.find()输出中添加“文档”一词?

在MySQL中,“ Stopword”一词是什么意思?

巨大数据框中的累积唯一词

编程中“重载”一词的真正含义

唯一词字典及其在文件中的位置

更改 Latex 中“参考”一词的字体大小

如何在不触发声纳警报的情况下在javadoc中写“ todo”一词?

我们应该如何解释cfq-iosched.txt中的“异步请求”一词?

当用户输入“退出”一词时,如何使用 Java 中的扫描器退出 do-while 循环?

如何从字典中定义一个词

在Ruby中,如何找到文件夹中的所有.csv文件并打印出包含“ meh”一词的文件的路径?

在ionic-angularjs一词中仅使一个粗体字母