PyMySQLと互換性のDjango2.Xパッケージ


モジュールのdjango2.2バージョンpymysqlエラー、エラーコードと互換性があります。
django.core.exceptions.ImproperlyConfigured:あるmysqlclient 1.3.13以降が必要です。あなたは0.9.3を持っていたことは

あるmysqlclientは、新しいバージョン1.3.13およびそれ以降のバージョンが必要必要です

 

これは
あるmysqlclient。C言語で書かれたパッケージのpythonとMySQLデータベース・リンク、ある
Pymysqlはスピードに匹敵する可能性があります。純粋なPythonとMySQLのデータリンクパケットに書かれているが、簡単なインストールで、使いやすい勝ち。

同様の機能の二つのパケット、同様の方法を使用して

、デフォルトのリンクパッケージを使用して、エラーDjangoフレームワーク(2.2)の原因であるため、ここではmysqlclientのではなく、pymysqlとMySQL 2.2のSTR force_strを返す使用..
        
        Django2.2出典:

    デフlast_executed_query(自己、カーソル、SQL、のparams):
        のMySQLdbでは、カーソルオブジェクトは、(文書化されていない)「_executed」持っている
        #のデータベースに送信された正確なクエリが保存されている属性を。
        ソース配布中のMySQLdb / cursors.pyを参照してください。
        のMySQLdbは、文字列、返しPyMySQLのバイトを。
        返す force_str(GETATTR(カーソル、 '_executed'、なし)、エラーが= '置き換えます')


ソリューション三つの方法:

1. はmysqlclient。またpymysqlは、MySQLとの接続のpython

2.変更Djangoのソース、コメントバージョンはmysqlclient判断、
そのようなエラーコードなど、はAttributeErrorは「str」はオブジェクトが持っていない無属性のデコード
エラーに対応する位置:.decodeする.encode又は

インポート

django.utils.encoding インポート force_str

ジャンゴが来る使用force_str変換する

もちろん3を、この問題を解決するためのフォールバック方式があり、Djangoフレームワーク2.2(2.1.4またはそれ以前)の前にロールバックします

おすすめ

転載: www.cnblogs.com/jrri/p/11610056.html