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

如何通过“ manage.py shell”使用交互式解释器重新加载Django模型模块?

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

如何通过“ manage.py shell”使用交互式解释器重新加载Django模型模块?

好吧,我想我必须回答这个问题。问题在于Django将其模型缓存在称为AppCache的单例(类似于单例的结构)中。基本上,要重新加载Django模型,您需要首先重新加载并重新导入存储在AppCache中的所有模型模块。然后,您需要清除AppCache。这是它的代码:

import os
from django.db.models.loading import AppCache
cache = AppCache()

curdir = os.getcwd()

for app in cache.get_apps():
f = app.file
if f.startswith(curdir) and f.endswith(‘.pyc’):
os.remove(f)
import(app.name)
reload(app)

from django.utils.datastructures import SortedDict
cache.app_store = SortedDict()
cache.app_models = SortedDict()
cache.app_errors = {}
cache.handled = {}
cache.loaded = False
我将所有这些都放在Django站点根目录中的一个名为reloadmodels.py的单独文件中。使用IPython,我可以通过运行以下命令重新加载所有内容:

%run ~/mysite/reloadmodels.py



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

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

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