在脚本中单独使用django的ORM模型详解
2020-04-02 12:08
1881 查看
有时候在测试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模型的方法
- 对Django项目中的ORM映射与模糊查询的使用详解
- 55_Django数据库_ORM外键使用详解
- django中ORM模型常用的字段的使用方法
- Django--ORM模型Field介绍及外键使用
- django 单独使用数据模型
- 单独的 python 脚本文件使用 django 自带的 model
- django 1.10 ORM单独使用的问题
- django 的 ORM 单独使用_yuqingjiushi-ChinaUnix博客
- 关于单独使用django orm 我的作法
- golang实战使用gin+xorm搭建go语言web框架restgo详解6.1 模型M和Orm
- Django使用详解:ORM 的反向查找(related_name)
- 单独的 python 脚本文件使用 django 自带的 model
- Django内置user模型中使用的方法详解
- 单独使用django的orm带事务
- django在命令行下执行的脚本使用ORM
- django 的 ORM 单独使用 - vkill'blog - “技术本身没有太多价值,掌握了新的思考方式才是真的收获”
- Django 之在系统根目录下运行脚本使用 ORM
- django 单独使用数据模型
- 在使用django框架搭建web中如果需要单独运行py脚本出现AppRegistryNotReady("Apps aren't loaded yet.")问题