Django框架之在Python指令碼中呼叫Django環境
阿新 • • 發佈:2018-12-14
簡介
當我們寫好Django專案後,需要在專案中利用Python指令碼測試和呼叫資料時,我們可以使用一以下方法。
在Django專案下建立一個檔案目錄作為指令碼程式碼環境,在其中建立py檔案複製以下程式碼進去:
import os if __name__ == '__main__': # 載入Django環境,books_management_system是我的Django專案名稱 os.environ.setdefault("DJANGO_SETTINGS_MODULE", 'books_management_system.settings') # 引入Django模組 import django # 初始化Django環境 django.setup() # 從app當中匯入models from lib import models # 呼叫操作,拿到資料庫中的所有Book資料物件 books = models.Books.objects.all() # 列印資訊 print(books)
執行:
<QuerySet [<Books: Books object (3)>, <Books: Books object (4)>, <Books: Books object (5)>, <Books: Books object (9)>, <Books: Books object (10)>, <Books: Books object (82140136)>]>
Process finished with exit code 0
可能出現錯誤
錯誤資訊:
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.
問題原因:
匯入django模組和從app中匯入models時全域性匯入,應該在 if __name__ == '__main__': 測試函式下匯入。
解決辦法:
(詳見上述程式碼)