1

最近、私は Google Developers Academy の Web サイトで「Using Python App Engine with Google Cloud SQL」チュートリアルを行っていました。しかし、演習の最初の部分「ローカルの MySQL インスタンスを使用したアプリケーションの構築」に出くわしました。サンプル コード (main.py) をローカルの MySQL インスタンスに接続できませんでした。誰かがこの問題の解決策を見つけたのだろうか。

MySQL をどのようにセットアップし、GAE のサンドボックスが MySQL-python コネクタにアクセスできるように構成したかを教えていただければ幸いです。

4

2 に答える 2

1

私はプロジェクトのためにしばらく前にこれを行うことができました。手順は次のとおりです (Windows の場合)。

  1. インストール中にmysqlサーバー MYSQLをインストールします。ユーザー名とパスワードをメモし、インスタンスの名前はMySQL55のようなものにする必要があります<-インストールしたバージョンによって異なります
  2. mysql python コネクタMYSQL Python Connectorをダウンロードしてインストールします
  3. Mysql サーバーが実行されていることを確認します。
  4. アプリに次のインポート行を挿入します。

    from google.appengine.api import rdbms
    

5. 私がしたことは、次のようにデータ接続を返す関数を作成することでした:

def conn_to_db():
return rdbms.connect(instance='MySQL55', database='Your_db_name_here', user='root', password='whatever_password_you_chose')

次に、データベースにクエリを実行します。

conn = conn_to_db()
cursor = conn.cursor()
cursor.execute('SELECT * FROM foo where foos = %s', (bar))
for row in cursor.fetchall():
    var1 = row[0]
    var2 = row[1]
conn.close()
于 2013-03-05T00:48:11.443 に答える
1

私は GAE、Python、MySQL の初心者であり、GAE を使用して Mac OS X で開発を行っているため、サンプル アプリケーションを動作させる方法を理解するのに本当に時間がかかりました。解決策を見つけたので、ここで共有したいと思います。私の手順に従って、ローカルの MySQL インスタンスを使用して、ローカルの GAE SDK 環境でサンプル アプリケーションを起動して実行してください。

個人的には、開発者が GAE アプリケーションを Google App Engine PaaS にデプロイする前にローカルの MySQL インスタンスを使用して自分のマシンで開発するのは非常に自然なことなので、これは非常に便利で便利だと思いました。

十分に述べましたが、以下は私が共有したい手順です。

  1. mysql.com コミュニティ サイトから MySQL dmg をインストールします (私のバージョンは mysql-5.5.30-osx10.6-x86_64.dmg です)。

  2. ~/.profile を変更して、これらの環境変数を追加します (これらの行を追加します)。 export PATH=/usr/local/mysql/bin:$PATH (またはインストールされている MySQL のバージョン) /lib/

  3. まだ行っていない場合は、Apple の AppStore から Xcode をインストールします。次に、設定の「ダウンロード」セクションから「コマンドラインツール」もインストールしてください。以下の手順 4 で MySQL-python コネクタを構築するために gcc コンパイラ (私のファイル システム: /usr/llvm-gcc-4.2/bin/llvm-gcc-4.2 にあります) をインストールするため、この手順が必要です。

  4. 次に、「sudo easy_install MySQL-python」を実行します (これにより、アプリケーションを Mac 上のローカル MySQL インスタンスに接続できます)。

  5. Google App Engine SDK for Python はサンドボックス環境であるため、このファイル /usr/local/bin/dev_appserver.py に「import MySQLdb」を追加して、GAE のサンドボックス環境をローカルの MySQL インスタンスにブリッジする必要があります。「main.py」ファイルの【サンプルコード】【2】を以下のように変更してください。サンプル コードを正しく実行するには、次のようにします。

    • 「import」セクションに「import MySQLdb」ステートメントを追加します。
    • " CLOUDSQL_INSTANCE = ' ' " ステートメントを " CLOUDSQL_INSTANCE = 'localhost' " に置き換えます。
    • MySQLdb パッケージは MySQL への DB API v2.0 互換インターフェースであるため、「get_connection()」関数を書き直す必要があります。パラメータ: "instance"、"database"、および "password" は、MySQLdb の "connect()" 関数では認識されません。MySQLdb パッケージを使用してローカルの MySQL インスタンスにアクセスするには、「get_connection」関数を次のように書き直す必要があります。
      
      def get_connection():
      return MySQLdb.connect(host=CLOUDSQL_INSTANCE, db=DATABASE_NAME,
      user=USER_NAME, passwd=PASSWORD, charset='utf8')
      
  6. 上記のすべての手順が完了したら、コマンド「dev_appserver.py」を実行してサンプル アプリケーションを起動できます。アプリケーションディレクトリに。

  7. デフォルトの 8080 ポートを使用している場合は、ブラウザでhttp://localhost:8080.

  8. 楽しんで楽しんでください。

于 2013-03-05T13:14:39.693 に答える