在脚本中单独使用django的ORM模型详解


Posted in Python onApril 01, 2020

有时候在测试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模型详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python之import机制详解
Jul 03 Python
Python中random模块用法实例分析
May 19 Python
Python中的with语句与上下文管理器学习总结
Jun 28 Python
Python使用正则表达式抓取网页图片的方法示例
Apr 21 Python
浅谈scrapy 的基本命令介绍
Jun 13 Python
Python从零开始创建区块链
Mar 06 Python
python实现读取大文件并逐行写入另外一个文件
Apr 19 Python
Python列表对象实现原理详解
Jul 01 Python
python实现大文件分割与合并
Jul 22 Python
使用pandas实现连续数据的离散化处理方式(分箱操作)
Nov 22 Python
pytorch torch.nn.AdaptiveAvgPool2d()自适应平均池化函数详解
Jan 03 Python
Pygame如何使用精灵和碰撞检测
Nov 17 Python
Python视频编辑库MoviePy的使用
Apr 01 #Python
python json.dumps中文乱码问题解决
Apr 01 #Python
Django Admin后台添加数据库视图过程解析
Apr 01 #Python
pyqt5中动画的使用详解
Apr 01 #Python
django项目中新增app的2种实现方法
Apr 01 #Python
Django Admin设置应用程序及模型顺序方法详解
Apr 01 #Python
django API 中接口的互相调用实例
Apr 01 #Python
You might like
Syphon 虹吸式咖啡壶冲煮–拨动法
2021/03/03 冲泡冲煮
浅析PHP中的UNICODE 编码与解码
2013/06/29 PHP
PHP实现多文件上传的方法
2015/07/08 PHP
thinkphp中AJAX返回ajaxReturn()方法分析
2016/12/06 PHP
php远程请求CURL实例教程(爬虫、保存登录状态)
2020/12/10 PHP
javascript Excel操作知识点
2009/04/24 Javascript
js传中文参数controller里获取参数乱码问题解决方法
2014/01/03 Javascript
简单的ajax连接库分享(不用jquery的ajax)
2014/01/19 Javascript
jQuery表格排序组件-tablesorter使用示例
2014/05/26 Javascript
JavaScript实现判断图片是否加载完成的3种方法整理
2015/03/13 Javascript
JS加载器如何动态加载外部js文件
2016/05/26 Javascript
JS使用正则表达式实现关键字替换加粗功能示例
2016/08/03 Javascript
利用JS判断鼠标移入元素的方向
2016/12/11 Javascript
nodejs模块nodemailer基本使用-邮件发送示例(支持附件)
2017/03/28 NodeJs
JS组件系列之MVVM组件构建自己的Vue组件
2017/04/28 Javascript
JavaScript解析任意形式的json树型结构展示
2017/07/23 Javascript
vue 打包后的文件部署到express服务器上的方法
2017/08/09 Javascript
Angular 组件之间的交互的示例代码
2018/03/24 Javascript
详解vue组件中使用路由方法
2019/02/12 Javascript
微信小程序动态显示项目倒计时
2019/06/20 Javascript
vue项目中常见问题及解决方案(推荐)
2019/10/21 Javascript
js滚轮事件 js自定义滚动条的实现
2020/01/18 Javascript
jQuery实现日历效果
2020/09/11 jQuery
原生JS实现音乐播放器
2021/01/26 Javascript
Python并发编程协程(Coroutine)之Gevent详解
2017/12/27 Python
python读写配置文件操作示例
2019/07/03 Python
Pycharm中出现ImportError:DLL load failed:找不到指定模块的解决方法
2019/09/17 Python
全世界最美丽的四星和五星级酒店预订:Prestigia.com
2017/11/15 全球购物
顶岗实习计划书
2014/01/10 职场文书
事业单位请假制度
2014/01/13 职场文书
最新创业融资计划书
2014/01/19 职场文书
无财产无子女离婚协议书范文
2014/09/14 职场文书
2016党校学习心得体会
2016/01/07 职场文书
农村房屋租赁合同(范本)
2019/07/23 职场文书
《曾国藩家书》读后感——读家书,立家风
2019/08/21 职场文书
vue中的可拖拽宽度div的实现示例
2022/04/08 Vue.js