我如何在 python 中以在 GAE 和本地测试环境上都有效的方式以编程方式设置 google cloud SQL?
当我在本地设置时,控制台总是显示:
MySQLdb is not installed or loaded.
但是当我打开终端写python和python命令行的时候 环境运行。它在终端中工作正常但在 GAE 中它说 在 GAE 控制台中跟随。
The RDBMS API is not available because the MySQLdb library could not be loaded.
我正在为 GAE 使用 python 2.7.3。
最佳答案
您可以在下面的链接中引用官方帮助/演练。
您需要遵循的重要事项是
- 确保本地安装了 MySql,您可以通过在终端中输入 MySQL 来访问它。
您必须安装 MySQLdb python 路径中的库。按照其安装指南进行操作,不要忘记更改下载文件夹中可用的 site.cfg 中的 mysql_config 变量,否则将无法安装。 设置 site.cfg 后运行以下命令。确保终端中的当前目录是刚刚从 MySQLdb link 下载的 MySQLdb。
sudo/System/Library/Frameworks/Python.framework/Versions/2.7/bin/python setup.py install
在本地 MySql 中创建一个测试数据库或在该本地数据库中导入实时转储,以便您的表结构在本地和实时环境中都是相同的
- 下面是上面页面中的简单代码,它适用于本地和实时环境
import os
import MySQLdb
import webapp2
INSTANCE_NAME = 'your-project-id:your-instance-name'
class SQ(webapp2.RequestHandler):
def get(self):
# Display existing guestbook entries and a form to add new entries.
if (os.getenv('SERVER_SOFTWARE') and
os.getenv('SERVER_SOFTWARE').startswith('Google App Engine/')):
db = MySQLdb.connect(unix_socket='/cloudsql/' + INSTANCE_NAME, db='guestbook', user='root')
else:
db = MySQLdb.connect(host='127.0.0.1', port=3306, db='guestbook', user='root')
cursor = db.cursor()
cursor.execute('select id,guestName,content from enteries')
for row in cursor.fetchall():
self.response.write("(id) " + str(row[0]) + " | (name) " + str(row[1]) + " | (content) " + str(row[2]) + "</BR>" )
db.close()
关于mysql - 如何在本地设置谷歌云 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13392779/