Djangoのオブジェクトリレーショナルマッピングデータベース

 

DjangoのORMの基本構成

これまでのところ、私たちのプログラムは、データベース関連の業務に来るとき、私たちは一般的にそうなります。

  • データベーステーブルの構造とデザインのフィールドを作成します。
  • MySQLdbは、データベースに接続するために使用され、コードは、データアクセス層に書き込ま
  • データベース操作を実行するために、ビジネスロジック層、データアクセス層を呼び出すには

Djangoの新しい方法、すなわち使用:オブジェクトマッピング関係(オブジェクト関係マッピング、ORMと呼ばれる)、すなわち、Djangoのコードフリストの原理は、次のとおり自動的クラスコードに応じて定義されたデータベーステーブルを生成します。

1、構成データベースプロジェクト変更(メインプログラムディレクトリにあるsettings.pyファイル)

ローカル・データベース・ファイルのsqlite3のへのデフォルトの接続:

DATABASES = {
     ' デフォルト' {
         ' ENGINE '' django.db.backends.sqlite3 ' ' NAME ':os.path.join(BASE_DIR、' db.sqlite3 ' 
    } 
}

指定されたMySQLデータベースを置き換えます。

= DATABASES {
     ' デフォルト' {
         ' ENGINE '' django.db.backends.mysql ' ' NAME '' 個人用サイト'#のデータベース名が中に存在していなければならない
        ' USER '' XXXX ' ' PASSWORD '' XXX ' ' HOST '' 192.168.xx.xx " PORT'' 3306 " 
    } 
}

2、定義ファイルデータベーステーブル構造を作成する(models.py appディレクトリファイルに対応)

簡単なデータベーステーブルを生成します。

django.db 輸入モデル

#は、ここにあなたのモデルを作成します。

クラスのUserInfo(models.Model):

    ユーザ名 = models.CharField(MAX_LENGTH = 32 
    のpasswd = models.CharField(MAX_LENGTH = 64)

対応するアプリケーション名は、settings.py内のコンフィギュレーションファイルに追加されます。

INSTALLED_APPS = [
     ' django.contrib.admin ' ' django.contrib.auth ' ' django.contrib.contenttypes ' ' django.contrib.sessions ' ' django.contrib.messages ' ' django.contrib.staticfiles ' 'cmdb02'  
]

3、データベースの生成

次のコマンドを実行します。

manage.py makemigrationsは、Python 
Pythonは移行manage.pyの          #は、テーブルを作成します

注意:MySQLdbはモジュールとDjangoのデフォルトのデータベースに接続しますが、このモジュールがpython3.xしていない、すべてのモジュールは、pymsyqlにデータベースに接続するプロジェクトディレクトリにinit.pyファイルを変更する必要があります

輸入  pymysql 
pymysql.install_as_MySQLdb()

データベーステーブルを生成するコマンドを実行し、問題が発生しました:

  A。django.core.exceptions.ImproperlyConfigured:あるmysqlclient 1.3.13以降が必要です。あなたは0.9.3を持っています。

  解決:見つけるbase.py \下python_path \ Libの\のsite-packages \ジャンゴDB \バックエンド\ MySQLのパスは、次のコードをコメント:

B。AttributeError:「str」はオブジェクトが属性「デコード」を持っていません

解決:のLib \サイト-パッケージ\ python_path下\ operations.py \を見つけるジャンゴDB \バックエンド\ MySQLの次のコードを変更し、パスを:

 =クエリクエリ。コード(エラーが=「交換」)のデコードをコードするように改変され

C。pymysql.err.InternalError:(1049、 "不明なデータベース '個人用サイト'")

解決:データベースは、データベースの個人用サイトを作成します。

おすすめ

転載: www.cnblogs.com/lhly/p/11128056.html