ジャンゴセットmysqlデータベースのメモ

1、ゲスト/ settings.pyで追加

pymysql輸入
pymysql.install_as_MySQLdb()

 インストール済みpymysql

2、データベースは、以下のパラメータのゲスト/ settings.pyを設定します

= {DATABASES 
    'デフォルト':{ 
        'ENGINE': 'django.db.backends.mysql'、
        'HOST': 'データベースIP'、
        'PORT': 'データベースポート'、
        'NAME': 'データベース名'、
        "ユーザー':'のmSQLユーザ名' 
        'パスワード':' MySQLのパスワード'、
        ' OPTIONS '{ 
            ' init_command ':「SET = sql_modeの' STRICT_TRANS_TABLES ' "、
        } 

    } 
}

3、問題のリストの出現

あるmysqlclient 1.3.13以降が必要です。ImproperlyConfigured
1、背景の問題:
:既にインストールpymysqlが、コマンドラインのpython3は、データ移行タイムズに次のエラーを移行manage.pyの
(もちろん、あなたが他の操作を実行することができるとき)同様のエラーが発生しました

......

import_moduleでファイル"/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/importlib/__init__.py"、ライン127、
リターン_bootstrap._gcd_import(名[レベル:]、パッケージ、レベル)
」ファイルで/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/django/db/backends/mysql/base.py」、36行目、<Module1の>
ImproperlyConfigured昇給(「はmysqlclient 1.3。以降は13を必要とする、あなたは%S「データベース%.__ version__を持ってい)。
django.core.exceptions.ImproperlyConfigured:あるmysqlclient 1.3.13以降が必要です。あなたは0.9.3を持っています。

最後の2行を求められたら、あるmysqlclientバージョンは十分ではありません新しいが、私はそれの最新バージョンがインストールされています。

2、問題の原因
PyMySQLローカルドライブがインストールされているが、それでも、デフォルトの接続のMySQLdb駆動DjangoのMySQLを使用しますが、MySQLdbはのpython3をサポートしていませんので、手動でプロジェクトを設定する必要が。

プロジェクトのルートディレクトリに__init__.pyファイルに次のコードを追加します。

pymysqlインポート
pymysql.install_as_MySQLdb()
1
2は、
再度コマンドを実行して、エラーになります、それは問題ではないが、三行目は、あなたのパスのヒントに基づいて、報告書の第36行に間違っbase.pyある告げ、詳しく見て与えられていますライン35が先行オープンbase.py、36#は次のように、うまくコメントアウト:

バージョン= Database.version_info 34は、
バージョン<(1 ,. 3、13である)の#if 35:
36#ImproperlyConfigured昇給( 'はmysqlclient 1.3.13以降が必要です。%Sはあなたを持っている。' %データベース.__ version__)

今、再度コマンドを実行します上記のエラーは消えたが、新しいエラーを持っている、以下のそれを解決する方法を参照してください。

AttributeError:「str」はオブジェクトが持っていない属性「復号」
彼は次のようなエラーが発生した後、上記の問題を解決するために:

last_executed_queryでファイル"/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/django/db/backends/mysql/operations.py"、ライン146、
クエリ= query.decode(エラー=「置き換える」)
はAttributeError:「str」はオブジェクトの属性がありません「復号」がありません

プロンプトプロパティのエラー:「STR」オブジェクトは、「デコード」属性はありません。

問題の原因があるのpython3中のもの:

エンコードによってSTR()バイトに変換
(デコードによりバイト)STRに変換する
と言うことである。のみ()メソッドをコードSTRのみ復号()メソッドをバイト!
この推定はジャンゴのバグです。

解決策:ファイルoperations.pyを開くように求められたら与えられています

次のようにデコードにコードすることが見出さライン146:
140 DEFのlast_executed_query(セルフ、カーソル、SQL、paramsは):
141のMySQLdbと#で、カーソルオブジェクト(時には文書化されていないと呼ばれる)AN「は_executed」がき
142#正確な属性を。データベースクエリが保存されるために送られた
143#を参照のMySQLdbは/がでソースディストリビューションのcursors.py。
144クエリ= GETATTR(カーソル、 '_executed'、なし)
145なしではありませんクエリIF:
146クエリ= query.encode(エラー=エンコードするために変更され復号化するためにここに)「を置換」#
147リターンクエリ

再度コマンドを実行し、この場合は、設定が完了し、エラーではありません!

  

おすすめ

転載: www.cnblogs.com/lza945/p/11448318.html