栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在Django之外使用Django模型?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在Django之外使用Django模型?

如果你看看如何Django的应用程序被加载,我认为你需要运行安装在你的应用程序

models.py
models/init.py
与不
db/__init__.py

Django启动时,django.setup()负责填充应用程序注册表。

setup(set_prefix = True)通过以下方式配置Django:

正在加载设置。设置日志记录。如果set_prefix为True,则将URL解析器脚本前缀设置为FORCE_script_NAME(如果已定义),否则设置为/。初始化应用程序注册表。该函数自动被调用:

通过Django的WSGI支持运行HTTP服务器时。调用管理命令时。在其他情况下,例如在纯Python脚本中,必须显式调用它。

应用程序注册表分为三个阶段初始化。在每个阶段,Django都会按照INSTALLED_APPS的顺序处理所有应用程序。

首先,Django将每个项目导入INSTALLED_APPS中。

如果是应用程序配置类,则Django会导入应用程序的根包,该根包由其name属性定义。如果是Python软件包,则Django将创建默认的应用程序配置。

在此阶段,您的代码不应导入任何模型!

换句话说,应用程序的根包和定义应用程序配置类的模块不应导入任何模型,即使是间接导入的模型也不应。

严格来说,Django允许在应用程序配置加载后导入模型。
但是,为了避免不必要地限制INSTALLED_APPS的顺序,强烈建议您在此阶段不要导入任何模型。

一旦完成此阶段,就可以使用对应用程序配置(例如get_app_config())进行操作的API。

然后,Django尝试导入每个应用程序的models子模块(如果有)。

您必须在应用程序的models.py或models / init.py中定义或导入所有模型。
否则,此时应用程序注册表可能尚未完全填充,这可能导致ORM出现故障。

一旦完成此阶段,就可以使用在诸如get_model()之类的模型上运行的API。

最后,Django运行每个应用程序配置的ready()方法。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/646524.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号