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、 "不明なデータベース '個人用サイト'")
解決:データベースは、データベースの個人用サイトを作成します。