私はApp EngineでMySQLデータベースを使用するのが初めてで、私が抱えている問題を誰かが助けてくれることを願っていました。私はGoogleのアカデミーのチュートリアルから得たローカルまたはクラウドデータベースとの接続を確立する機能connect_to_cloudsql()
を持っています。以下のコードは次のとおりです。私は、データベースに接続するために私のクラスでconnect_to_cloudsql()
を使用App EngineからMySQL DBに接続する
# These environment variables are configured in app.yaml. CLOUDSQL_CONNECTION_NAME = os.environ.get(<something here>) CLOUDSQL_USER = os.environ.get(<something here>) CLOUDSQL_PASSWORD = os.environ.get(<something here>)
def connect_to_cloudsql():
# When deployed to App Engine, the 'SERVER_SOFTWARE' environment variable
# will be set to 'Google App Engine/version'.
if os.getenv('SERVER_SOFTWARE', '').startswith('Google App Engine/'):
# Connect using the unix socket located at
# /cloudsql/cloudsql-connection-name.
cloudsql_unix_socket = os.path.join('/cloudsql', CLOUDSQL_CONNECTION_NAME)
db = MySQLdb.connect(
unix_socket=cloudsql_unix_socket,
user=CLOUDSQL_USER,
passwd=CLOUDSQL_PASSWORD)
# If the unix socket is unavailable, then try to connect using TCP. This
# will work if you're running a local MySQL server or using the Cloud SQL
# proxy, for example:
# $ cloud_sql_proxy -instances=your-connection-name=tcp:3306
else:
db = MySQLdb.connect(host='localhost', port=3310, user='root', passwd='something here', db='DB1')
return db
。コードは、ローカルで正常に動作しますが、私は展開し、それを使用しようとすると、私は次のエラーを取得する:
File "/base/data/home/apps/s~reliance-group/1.401176020169136394/sql/tests.py", line 70, in get
con = connect_to_cloudsql()
File "/base/data/home/apps/s~reliance-group/1.401176020169136394/sql/tests.py", line 45, in connect_to_cloudsql
'/cloudsql', CLOUDSQL_CONNECTION_NAME)
File "/base/data/home/runtimes/python27_experiment/python27_dist/lib/python2.7/posixpath.py", line 68, in join
if b.startswith('/'):
AttributeError: 'NoneType' object has no attribute 'startswith'
こんにちはL_Sです。私はapp.yamlに環境変数を設定しました。変数 'CLOUDSQL_CONNECTION_NAME'、' CLOUDSQL_USER'、 'CLOUDSQL_PASSWORD'を設定しました。私は行方不明の何か他のものがありますか? – Y2H