有时候在测试django中一些模块时,不想重新跑一整个django项目,只想跑单个文件,正好写在if __name__ == '__main__': 这样也不会打扰到正常的代码逻辑
方法
正常方法
大家都知道的方法就是'python manage.py shell',当然我知道这可能不是你需要的;
更好用的方法
在脚本中import模型前调用下面几行即可:
import os, sys BASE_DIR = os.path.dirname(os.path.abspath(__file__)) # 定位到你的django根目录 sys.path.append(os.path.abspath(os.path.join(BASE_DIR, os.pardir))) os.environ.setdefault("DJANGO_SETTINGS_MODULE", "dj_tasks.settings") # 你的django的settings文件
接下来再调用'from XXXX.models import XXX'就不会报错了
补充知识:Django使用外部文件对models操作容易产生的问题
看代码吧!
from pv_server.models import IVCurvesInfo, FaultType import os import django os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'PV_Moniter.settings') django.setup() def add_fault_type(fault_list, true_data_list, fault_decription_list=None): for item in fault_list: idx = fault_list.index(item) true_data = true_data_list[idx] fault_decription = fault_decription_list[idx] if (fault_decription_list and fault_decription_list[idx]) else None FaultType.addFault.create_faultType(item, true_data,fault_decription) if __name__ == '__main__': add_fault_type(['normal', 'partial shadow_1', 'partial shadow_2', 'partial shadow_3', 'short circuit_1', 'short circuit_2', 'degradation_1', 'degradation_2', 'open_circuit'], [0] * 9) print("Done!")
以上述代码为例
会产生
django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
的问题,这里要注意 明明已经增加了
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'PV_Moniter.settings')
django.setup()
但,还是报错的原因是因为!!!!在导入models的时候,还没有在django对应的环境下导入
这里导入的顺序很重要
import os import django os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'PV_Moniter.settings') django.setup() from pv_server.models import IVCurvesInfo, FaultType
这样更换导入顺序后,就顺利的解决啦!
以上这篇在脚本中单独使用django的ORM模型详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
django,ORM模型
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
- 完美倒立.2024-夜色碳酸【草台回声】【FLAC分轨】
- 杨青《半山听雨贰HQ》头版限量编号[低速原抓WAV+CUE]
- 白玛多吉《云上西藏1+2》DTS-WAV
- 模拟之声慢刻CD《柏林之声3》[正版CD原抓WAV+CUE]
- 威神V(WayV)《The Highest》[FLAC/分轨][259.1MB]
- 余超颖《迷焕纪》[320K/MP3][201.15MB]
- 余超颖《迷焕纪》[FLAC/分轨][784.22MB]
- 温岚.2005-爱回温新歌加精选2CD【阿尔发】【WAV+CUE】
- 尤雅.1990-台语怀念金曲特选辑【太阳神】【WAV+CUE】
- 群星.2024-七夜雪电视剧影视原声带【听见时代】【FLAC分轨】
- 群星《胎教音乐 古典钢琴曲与水晶摇篮曲》[320K/MP3][134.14MB]
- 群星《胎教音乐 古典钢琴曲与水晶摇篮曲》[FLAC/分轨][654.13MB]
- 许惠钧《睡眠钢琴与校园民歌金曲 空灵新世纪催眠曲》[320K/MP3][201.15MB]
- wbg战队国籍分别都是哪里的 wbg战队2024阵容国籍介绍
- wbg战队教练是韩国人吗 s14wbg战队教练国籍介绍