如何使用Google App Engine与MS-SQL?

3

我使用

  • Python 2.7
  • pyodbc模块
  • Google App Engine 1.7.1

我可以在Python中使用pydobc模块,但Google App Engine无法加载该模块。我收到了一个名为pydobc的模块不存在的错误。

我要如何解决这个错误,或者如何在本地Google App Engine上使用MS-SQL数据库。


你不能使用pyodbc,它依赖于基于“c”的实现,并且在appengine上无法使用。请参阅此信息。http://code.google.com/p/pyodbc/wiki/Building。如果您想使用appengine,则必须按照下面的答案使用CloudSQL,在MSSQL服务器上创建一个Web服务,您的appengine应用程序可以使用,或者不使用appengine。(请注意,您只能进行基于http的出站连接-因此下面的评论是关于无法连接到自己的DB服务器的。) - Tim Hoffman
2个回答

4
谷歌应用引擎不支持访问自己的SQL服务器,也不支持加载自己的C-API库。您可以使用实现了MySQL数据库的Google Cloud SQL存储,通过Python云SQL API进行访问。请注意,Google提供的rdbms模块实现了PEP 249 Python数据库API 2.0规范,就像pyodbc模块一样,因此您在使用它时不应该遇到问题。
from google.appengine.api import rdbms

conn = rdbms.connect(instance=INSTANCE_NAME, database=DATABASE)
cursor = conn.cursor()
cursor.execute('SELECT * FROM sometable')

非常感谢Martjin Pieters。我的数据库是 MS SQL 而不是 MySQL,我能用这种方式连接 MSSQL 数据库吗? - user1622511
2
@user1622511:不,正如我所说,您不能使用自己的服务器,Google 提供Google Cloud SQL存储或Google Cloud存储;请参见https://developers.google.com/appengine/docs/python/datastore/。 - Martijn Pieters

0

理论上,您可以将数据从MS-SQL复制到Google Cloud SQL数据库。您可以在MS-SQL数据库中创建触发器,以便每个事务都通过您需要构建的REST API反映在您的App Engine应用程序中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接