DjangoはおそらくMySQLdbはライブラリの使用に起因しているのpython3をサポートしていない、我々はピットの多様で、その結果、代わりにPyMySQLライブラリーを採用し、特に次の2つのコマンドの実装は時間です。
python manage.py makemigrations
or
python manage.py inspectdb
最初のピット(バージョンを促しあるmysqlclient低すぎます)
あなたがインストールはmysqlclientをインストールPIP最新バージョンを実行して退屈している、スローされます。
django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.3 or newer is required; you have 0.7.11.None
MDは、LZこのエラーはあまりにも誰かを呼び出したい見て、オンラインの方法を取る方法は、大法コメントはありません!
Python36-32 \ Libの\サイト・パッケージを探す\ジャンゴ\ DB \バックエンド\ mysqlの\ Pythonでbase.pyファイルがロードキングをインストール
次のコード注釈ファイル(pycharm IDEを閉じるために必要な場合があります)
if version < (1, 3, 3):
raise ImproperlyConfigured("mysqlclient 1.3.3 or newer is required; you have %s" % Database.__version__)
第二の穴(STR法をデコードしないタイプ)
一対のペアのペア、PY3はによってのみ復号方法デコードバイトエンコード方式にエンコードされたUnicode STRデフォルトのエンコーディングタイプがあります。
ヒントエラーソース:Python36 \ libには\サイト-パッケージ \ジャンゴ\ DB \バックエンド\ mysqlの\ operations.py」、行149、last_executed_queryで
- ここでは脳ホール無敵だ私はに依存してデコード方法にエンコードするオンライン検索の束は、です
概要ソース(PIPコンテンツインストール無傷ジャンゴ2.2.1)。
def last_executed_query(self, cursor, sql, params):
# With MySQLdb, cursor objects have an (undocumented) "_executed"
# attribute where the exact query sent to the database is saved.
# See MySQLdb/cursors.py in the source distribution.
query = getattr(cursor, '_executed', None)
if query is not None:
query = query.decode(errors='replace')
return query
ゴングクエリ印刷出力結果、コンテンツ
SELECT @@SQL_AUTO_IS_NULL
数据类型为str
- ここではそこにコメントが有効であり、後遺症は効果がない場合は大法、LZは知らないオンラインのコメントがあり、それが採用されることはありません。
だから私は、このメソッドのファイルの最新のDjangoのgithubの/歴史的なバージョンに目を通すことを行った次のように、最新のマスターブランチの結果を読み取ります。
def last_executed_query(self, cursor, sql, params):
# With MySQLdb, cursor objects have an (undocumented) "_executed"
# attribute where the exact query sent to the database is saved.
# See MySQLdb/cursors.py in the source distribution.
# MySQLdb returns string, PyMySQL bytes.
return force_str(getattr(cursor, '_executed', None), errors='replace')
関数名を見て、それをSQLに変換するために、強制的にSTRアップしなければならない
私は頼ります!!!このニマ公式サイト2.2.1パッケージは、本書で紹介し、この上記の方法を覚えて、それを傷つけるされていません
from django.utils.encoding import force_str
Managa.pyはその後、それをコマンドを実行します