別々の読み取りおよび書き込み操作データベースジャンゴ複数の

データベースを作成します。

      

= DATABASES {
     ' デフォルト' {
         ' ENGINE '' django.db.backends.mysql ' ' NAME '' デフォルト' ' ホスト'' 127.0.0.1 '#1 メインサーバーIPの操作
        ' PORT ': 3306、   のポートマスタ実行
        ユーザールート#のプライマリサーバのユーザ名を
        "パスワード'' 123456 ' #のパスワードマスターサーバー

    }、
    ' スレーブ' {
         ' ENGINE '' django.db.backends.mysql ' ' NAME '' スレーブ' ' HOST '' 127.0.0.1 ' PORT ':3306 ' USER '' ルート'"PASSWORD '' 123456 " 

    } 
}

 モデルは、テーブルを構築しました:

django.db インポートモデル

。壁紙ここにあなたのモデルを作成し
、クラスのArticleこの記事は(models.Model)であった:

    管理のフィールドの中国の表示verbose_name 
    タイトル= models.CharField(64 MAX_LENGTH = #の抽象 
    DESC = models.CharField(MAX_LENGTH = 255)

データベースの移行:

manage.py makemigrations Pythonの   の移行では、生成されたレコードフォルダ

Pythonの移行は、manage.pyのデフォルトの--database   #のデフォルトパラメータを書き込むことはできません

Pythonは移行manage.pyの --databaseスレーブ   #は、あなたがそれの上に構築することができ、一度ライブラリからの移行を同じテーブル

アプリプロジェクトdb_router.pyファイルで作成し、読み出しのためのファイルのルーティング・データベース・クラスを定義し、分離を記述し、このクラスは、すなわち、4つの方法の最大を提供する:db_for_read、、 、db_for_write ちょうど次の三つを書き込みます。allow_relationallow_migrate

クラスMasterSlaveDBRouter(オブジェクト):
     「」「孤立読み取りをルーティングマスタからのデータベース」「」
 
    DEF db_for_read(セルフ、モデル、** ヒント):
         「」「読むデータベース」「」
        復帰 奴隷
 
    DEF db_for_write(セルフ、モデル、 ** ヒント):
         「」「ライト・データベース」「」
        復帰 デフォルト
 
    DEFの allow_relation(セルフ、OBJ1、OBJ2、** ヒント):
         「」「関連の操作を実行するかどうか」「」
        を返す真  

でsettings.pyで設定注意:

DATABASE_ROUTERS = [ " app001.db_router.MasterSlaveDBRouter " ]

ビュー機能を動作させることができます。

DEF 書き込み(要求):
    models.Article.objects.create(タイトル = 紅楼夢、DESC = 良い
使用して(使用して#「デフォルト」)を指定して、データベースの
リターンのHttpResponse(成功を書く DEF 読む(リクエスト) : OBJ = models.Article.objects.filter(タイトル= ' ' )1次回() 印刷(obj.title) を返す(はHttpResponseを" 成功読み"

 

 

 

おすすめ

転載: www.cnblogs.com/sima-3/p/11390757.html