- Django 3.0入門與實踐
- 李健編著
- 476字
- 2021-03-27 00:17:41
4.10 inspectdb
作用:查詢數據庫表或者視圖對應的Django模型。如果沒有提供參數,則僅在使用--includeviews選項時為視圖創建模型。
通過該命令可以很方便地將已有的數據庫表或者視圖轉換成Django模型。
語法:django-admin inspectdb [table [table ...]]
示例1:查看polls_question表對應的Django模型,輸入命令,如下圖所示。

示例2:查看數據庫視圖對應的Django模型。
首先在數據庫中創建一個視圖,該視圖能顯示調查問卷及問卷答案,視圖對應的SQL腳本如下:
select q.question_text, q.pub_date, c.choice_text, c.votes from polls_question as q inner join polls_choice as c on q.id = c.question_id
新視圖在數據庫中的顯示如下圖所示。

執行inspectdb命令,如下圖所示。

注意
當inspectdb命令無法將數據庫中的字段類型轉換為Django模型字段類型時將會使用TextField,同時插入一條注釋:'This field type is a guess.'。
如果數據庫字段名是Python保留字,如class、pass,那么inspectdb命令會為模型屬性名自動添加一個“_field”后綴。
inspectdb命令不會根據數據庫字段默認值生成model字段的默認值。
默認情況下inspectdb命令生成的模型是非Django托管模型(managed=False),如果想生成托管模型,可以使用managed參數。
針對不同數據庫需要注意以下幾點:
在Oracle中使用--include-views可以為物化視圖(materialized view)生成模型。
在PostgreSQL中,inspectdb命令可以為外部表(foreign table)生成模型,使用--include-views可以為物化視圖(materialized view)生成模型,使用--include-partitions可以為部分表(partition table)生成模型。
- Java加密與解密的藝術(第2版)
- SSM輕量級框架應用實戰
- Spring Boot企業級項目開發實戰
- Learning Python Design Patterns
- Android開發案例教程與項目實戰(在線實驗+在線自測)
- HTML 5與CSS 3權威指南(第3版·上冊)
- Python算法詳解
- Learning Unreal Engine Android Game Development
- 移動互聯網軟件開發實驗指導
- JBoss:Developer's Guide
- Java EE 7 with GlassFish 4 Application Server
- Learning ECMAScript 6
- Android應用開發攻略
- Python高性能編程(第2版)
- Pandas 1.x Cookbook