是否有办法使用真实数据库(SQLite,Mysql,甚至某些非关系数据库)作为开发数据存储,而不是提供的内存/文件数据存储。
我看到很少的项目,GAE-SQLite(似乎没有工作)以及使用远程api访问生产数据存储区的一个提示(对于大型数据集来说仍然很慢)。
答案 0 :(得分:4)
MongoDB非常适用于此。你需要:
代码:
import datastore_mongo_stub
os.environ['APPLICATION_ID'] = 'test'
datastore = datastore_mongo_stub.DatastoreMongoStub(
os.environ['APPLICATION_ID'], 'woot', '', require_indexes=False)
apiproxy_stub_map.apiproxy.RegisterStub('datastore_v3', datastore)
但是,如果您正在寻找真正更快的开发(就像我一样),数据存储实际上并不是单线程Web服务器的问题。 I tried to replace it with spawning但这有点太难了。您还可以尝试设置TyphoonAE,它将使用开放替代方案模拟appengine堆栈。
请注意,如果您执行其中任何操作,可能会丢失当前工具提供的某些确切行为,这意味着如果部署,您可能会得到您没想到的结果。换一种说法;确保你知道你在做什么: - )
答案 1 :(得分:2)
Google App Engine SDK for Python现在捆绑了对SQLite的支持。有关详细信息,请参阅official docs。
答案 2 :(得分:1)
bdbdatastore是一个替代数据存储区后端,它比开发服务器内置的更好,尽管在处理大型应用程序时,数据存储区远不是开发服务器的唯一问题。