DjangoのORM inspectdb逆世代(II)DjangoのORM inspectdbを発生する逆データベーステーブルのデータベーステーブル

逆発生データベーステーブル(b)はDjangoのORM inspectdb

ここでは、ジャンゴのコードを生成する方法を逆mysqlのモデル言い始めます。 

我々が生成する逆にDjangoのORMを表示する前に、生成されたコードを転送する方法についての話をしましょう。

フォワード世代、例えばmodel.pyに沿ってのMySQLデータベーステーブルを作成するように、model.pyファイルを作成するために参照し、ジャンゴ内蔵コンパイラ。

次いで内蔵Djangoのコンパイラは、モデルコードを生成し、データベースを作成するテーブルを参照し、生成した逆。

 

仕事への準備ができて1、

Djangoプロジェクトとアプリケーションを作成します。

名前はHelloWorldのあるDjangoプロジェクトを作成します。

django-admin.py startprojectのHelloWorldの

アプリの作成、名前テスト

python manage.py startappののハロー  

設定データベース

INSTALLED_APPS settings.pyでアプリの設定

コードをコピー
アプリケーション定義   
  
INSTALLED_APPS = [  
     ' django.contrib.admin ' ' django.contrib.auth ' ' django.contrib.contenttypes ' ' django.contrib.sessions ' ' django.contrib.messages ' ' django.contrib .staticfiles ' ' こんにちは" 
]  
コードをコピー

settings.pyの構成データベース

コードをコピー
DATABASES = {
     ' デフォルト' {
         ' ENGINE '' django.db.backends.mysql ' ' NAME '' big_data ' ' USER '' ルート' ' PASSWORD '' 1234 ' ' HOST '' 10.93.84.53 ' "PORT "' 3306 ' 
    } 
}
コードをコピー

 

図2に示すように、前方に発生

Model.pyは、ディレクトリハローアプリで作成しました

コードをコピー
django.db 輸入モデル

クラスAlarmGroup(models.Model):
GROUP_NAME
= models.CharField(PRIMARY_KEY =真、MAX_LENGTH = 250
group_des
= models.TextField(ブランク=真、ヌル= TRUE)
メンバー
= models.TextField(ブランク=真、ヌル= TRUE)
タイムスタンプ
= models.DateTimeField()

コードをコピー

実行して前方世代

python manage.py makemigrations 
のpython manage.py移行

テーブルの作成に成功したことを表示し、構成データベースに行くことができます

 

図3に示すように、逆発生

今、データベース内のテーブルを作成します

コードをコピー
CREATE  TABLE `alarm_group`(
  ` group_name` VARCHAR250NOT  NULL 
  `group_des`ブロブ、
  ` members`ブロブ、
  ` タイムスタンプ ` 日時 NOT  NULL 
  `on_duty`ブロブ、
  ` leader`ブロブ、
  PRIMARY  KEY ( `group_name`)を
)ENGINE = MyISAMテーブルDEFAULT CHARSET = utf8を
コードをコピー

次に、コマンド、コード生成model.pyを実行します

python manage.py inspectdb

次のようにModel.pyコードを生成しました

コードをコピー
クラスAlarmGroup(models.Model):
    GROUP_NAME = models.CharField(PRIMARY_KEY =真、MAX_LENGTH = 250 
    group_des = models.TextField(ブランク=真、ヌル= TRUE)
    メンバー = models.TextField(ブランク=真、ヌル= TRUE)
    タイムスタンプ = models.DateTimeField()

クラスメタ:
管理
=
のDB_Table
= ' alarm_group '

コードをコピー

DB_Tableのマッピングテーブル名がデータベースにあります。

おすすめ

転載: www.cnblogs.com/python001-vip/p/12606956.html