gevent-mysql や Concurrence の MySQL ドライバーなど、サポートされていない MySQL ドライバーで Django を動作させるにはどうすればよいですか?
-
26-09-2019 - |
質問
Concurrence や gevent のような非同期フレームワークで Django を実行することに興味があります。どちらのフレームワークにも、独自の非同期 MySQL ドライバーが付属しています。
問題は、Django が MySQLdb のみを公式にサポートしていることです。Django を gevent または Concurrence に付属の MySQL ドライバーで動作させるには何をする必要がありますか?
どこかにステップバイステップのガイドはありますか?これは大事業ですか?
ありがとう。
解決
pymysql をして行くためにtravisclineの提案@のための3つの歓声。彼の提案はモジラするからこの記事に基づいていました。それが取るすべてはあなたのmanage.pyファイルの
にシンプルなパッチです#!/usr/bin/env python
+try:
+ import pymysql
+ pymysql.install_as_MySQLdb()
+except ImportError:
+ pass
pymysqlは、純粋なPythonのドライバであるため、あなたの設定ファイルにインポートを変更し、モンキーパッチ()。
彼は輸入を変更し、pymysql、MySQLdbは、とmyconnpyのためのユニットテストを実行することにより、互換性をテストすることに言及したトラヴィス。
そこ
の注意すべき細かい細部の例がすでにあることに注意してください - しかし、全体これはエレガントな、保守性ソリューション。私は生産でこのランニングを得るとき、私は更新されます!他のヒント
次のようにして、pymysql を Django で動作させることに成功しました。
- 先頭の try-excel ブロックをコメントアウトします。 ベース.py MySQLdb がインポートされるファイル。
次の 4 行を追加します ベース.py
try: import pymysql as Database except ImportError: pass
リンク先で述べたように、 エガバター 投稿したら、base.py ファイルに移動して検索と置換を行います
MySQLdb
とpymysql
ファイルの関連部分、つまりエラー メッセージを変更する必要はありません (変更することもできますが、それはあなた次第です)。Base.py を保存し、apt の場所から次のコマンドを実行して、サーバーが起動することを確認します。
python manage.py runserver
所属していません StackOverflow