1. 程式人生 > >DJango - Sqlachemy - 如何生成已有數據庫的models

DJango - Sqlachemy - 如何生成已有數據庫的models

model 安裝 ati site 一個 例子 www info djang

  在使用SQLAlchemy時,如果數據庫已經存在,這個時候如果還要手工書寫model格式,即繁瑣也容易出錯,這裏提供兩個工具實現為大家解除這個煩惱。

1、使用sqlacodegen自動生成已有數據表的SQLAlchemy的Model

  (1) 安裝sqlacodegen:在控制臺命令行下執行如下命令
    pip install sqlacodegen安裝完畢後通過在dos下執行:sqlacodegen --help,可以獲取幫助信息
  (2) 在命令行執行如下命令,生成model.py文件
    sqlacodegen mysql+pymysql://root: [email protected]:3306/mystock > models.py

    其中“mysql+pymysql://root:[email protected]:3306/mystock” 為sqlAlchemy中create_engine()方法中參數,生成的model.py在dos所處的前文件夾內

2、Django使用inspectdb來生成Model

  Django的數據庫層從Python代碼生成SQL schemas—但是對於遺留數據庫,你已經擁有SQL schemas. 這種情況,你需要為已經存在的數據表創建model. 為此,Django自帶了一個可以通過讀取您的數據表結構來生成model的工具. 該輔助工具稱為inspectdb,你可以通過執行manage.pyinspectdb

來調用它.

  通過運行django-admin.py startproject mysite (這裏 mysite是你的項目的名字)建立一個Django項目。 好的,那我們在這個例子中就用這個 mysite作為項目的名字。編輯項目中的配置文件, mysite/settings.py,告訴Django你的數據庫連接參數和數據庫名。 具體的說,要提供 DATABASE_NAME, DATABASE_ENGINE, DATABASE_USER, DATABASE_PASSWORD, DATABASE_HOST, 和 DATABASE_PORT這些配置信息.

  (註意,這裏面有些配置項是可選的,更多信息參考第五章) (Note that some of these settings are optional. Refer to Chapter 5 for more information.)

  通過運行 pythonmysite/manage.pystartappmyapp(這裏 myapp是你的應用的名字)創建一個Django應用.那麽,我們就以 myapp做為這個應用的名字.
  這裏我們使用 myapp做為應用名.運行命令 pythonmysite/manage.pyinspectdb. 這將在 DATABASE_NAME數據庫中檢查所有的表和打印出為每張表生成的model
class. 看一看輸出結果想一下 inspectdb 能做些什麽.將標準shell的輸出重定向,保存輸出到你的應用的 models.py文件裏python mysite/manage.py inspectdb > mysite/myapp/models.py

  編輯mysite/myapp/models.py文件以清理生成的 models 以及一些必要的定制化。

DJango - Sqlachemy - 如何生成已有數據庫的models