欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

在腳本中單獨(dú)使用django的ORM模型詳解

 更新時(shí)間:2020年04月01日 15:29:54   作者:kkevinyang  
這篇文章主要介紹了在腳本中單獨(dú)使用django的ORM模型詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

有時(shí)候在測試django中一些模塊時(shí),不想重新跑一整個(gè)django項(xiàng)目,只想跑單個(gè)文件,正好寫在if __name__ == '__main__': 這樣也不會(huì)打擾到正常的代碼邏輯

方法

正常方法

大家都知道的方法就是'python manage.py shell',當(dāng)然我知道這可能不是你需要的;

更好用的方法

在腳本中import模型前調(diào)用下面幾行即可:

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文件

接下來再調(diào)用'from XXXX.models import XXX'就不會(huì)報(bào)錯(cuò)了

補(bǔ)充知識(shí):Django使用外部文件對models操作容易產(chǎn)生的問題

看代碼吧!

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!")

以上述代碼為例

會(huì)產(chǎn)生

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.

的問題,這里要注意 明明已經(jīng)增加了

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'PV_Moniter.settings')
django.setup()

但,還是報(bào)錯(cuò)的原因是因?yàn)椋。。。≡趯?dǎo)入models的時(shí)候,還沒有在django對應(yīng)的環(huán)境下導(dǎo)入

這里導(dǎo)入的順序很重要

import os
import django
 
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'PV_Moniter.settings')
django.setup()
 
from pv_server.models import IVCurvesInfo, FaultType

這樣更換導(dǎo)入順序后,就順利的解決啦!

以上這篇在腳本中單獨(dú)使用django的ORM模型詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python常用庫推薦

    Python常用庫推薦

    本文給大家推薦的是在Python學(xué)習(xí)使用中經(jīng)常需要用到的第三方庫和工具,非常的實(shí)用,有需要的小伙伴可以參考下
    2016-12-12
  • 中秋快到了利用 python 繪制中秋禮物

    中秋快到了利用 python 繪制中秋禮物

    眼看中秋又快到了,中秋回家,帶什么禮物更讓家人歡心?今天小編就利用python幫你帶個(gè)對象回家,感興趣的小伙伴趕快來看,要記得收藏起來以免迷路
    2021-09-09
  • Python多進(jìn)程協(xié)作模擬實(shí)現(xiàn)流程

    Python多進(jìn)程協(xié)作模擬實(shí)現(xiàn)流程

    當(dāng)多個(gè)進(jìn)程使用同一份數(shù)據(jù)資源的時(shí)候,因?yàn)檫M(jìn)程的運(yùn)行沒有順序,運(yùn)行起來也無法控制,如果不加以干預(yù),往往會(huì)引發(fā)數(shù)據(jù)安全或順序混亂的問題,所以要在多個(gè)進(jìn)程讀寫共享數(shù)據(jù)資源的時(shí)候加以適當(dāng)?shù)牟呗?,來保證數(shù)據(jù)的一致性問題
    2023-01-01
  • Python ORM框架SQLAlchemy學(xué)習(xí)筆記之?dāng)?shù)據(jù)添加和事務(wù)回滾介紹

    Python ORM框架SQLAlchemy學(xué)習(xí)筆記之?dāng)?shù)據(jù)添加和事務(wù)回滾介紹

    這篇文章主要介紹了Python ORM框架SQLAlchemy學(xué)習(xí)筆記之?dāng)?shù)據(jù)添加和事務(wù)回滾介紹,需要的朋友可以參考下
    2014-06-06
  • pandas每次多Sheet寫入文件的方法

    pandas每次多Sheet寫入文件的方法

    今天小編就為大家分享一篇pandas每次多Sheet寫入文件的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python3批量創(chuàng)建Crowd用戶并分配組

    Python3批量創(chuàng)建Crowd用戶并分配組

    這篇文章主要介紹了Python3批量創(chuàng)建Crowd用戶并分配組,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • python scrapy爬蟲代碼及填坑

    python scrapy爬蟲代碼及填坑

    這篇文章主要介紹了python scrapy爬蟲代碼及填坑,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • Python測試框架pytest介紹

    Python測試框架pytest介紹

    這篇文章主要介紹了Python測試框架pytest介紹,Pytest是一個(gè)非常成熟的全功能的python測試框架,有簡單靈活易上手、支持參數(shù)化等優(yōu)點(diǎn),下面其相關(guān)內(nèi)容需要的小伙伴可以參考一下
    2022-03-03
  • Python使用Selenium時(shí)遇到網(wǎng)頁<body>劃不動(dòng)的問題解決方法

    Python使用Selenium時(shí)遇到網(wǎng)頁<body>劃不動(dòng)的問題解決方法

    如果在使用 Selenium 時(shí)遇到網(wǎng)頁的 <body> 劃不動(dòng)的問題,這通常是因?yàn)轫撁娴臐L動(dòng)機(jī)制(例如,可能使用了一個(gè)具有固定高度的容器或自定義的滾動(dòng)條)導(dǎo)致無法通過簡單的 JavaScript 實(shí)現(xiàn)滾動(dòng),可以通過以下方法來解決該問題
    2024-10-10
  • Matlab實(shí)現(xiàn)圖像邊緣檢測

    Matlab實(shí)現(xiàn)圖像邊緣檢測

    這篇文章主要為大家詳細(xì)介紹了Matlab實(shí)現(xiàn)圖像邊緣檢測,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10

最新評論