1. 程式人生 > >Django框架之在Python指令碼中呼叫Django環境

Django框架之在Python指令碼中呼叫Django環境

簡介

當我們寫好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__': 測試函式下匯入。

解決辦法:

(詳見上述程式碼)