用remote_api来远程访问GAE的数据库
2009 3 19 08:28 PM 2461次查看
分类:Google App Engine 标签:Google App Engine, Python
GAE SDK 1.1.9推出之前,GAE的数据库只能在GAE和控制面板里访问,现在多了个新的选择,可以直接远程访问了。
按照文章所说,你首先要在app.yaml中添加下面的handler,并更新应用程序:
handlers:
- url: /remote_api
script: $PYTHON_LIB/google/appengine/ext/remote_api/handler.py
login: admin
其中的/remote_api请按情况修改,最好不要让别人知道你的后门。接着在你要操作的应用程序下创建一个__init__.py文件。
这个文件只要把你所要用到的数据模型import进来,或者copy进来即可。
然后创建如下的程序:
import code
import getpass
import sys
sys.path.append("~/google_appengine")
# 如果是Windows操作系统,请写类似下面的路径:
# sys.path.append(r"E:\google_appengine")
# sys.path.append(r"E:\google_appengine\lib\yaml\lib")
from google.appengine.ext.remote_api import remote_api_stub
from google.appengine.ext import db
# import 你的应用程序文件夹的名字
def auth_func():
return raw_input('Username:'), getpass.getpass('Password:')
if len(sys.argv) < 2:
print "Usage: %s app_id [host]" % (sys.argv[0],)
app_id = sys.argv[1]
if len(sys.argv) > 2:
host = sys.argv[2]
else:
host = '%s.appspot.com' % app_id
remote_api_stub.ConfigureRemoteDatastore(app_id, '/remote_api', auth_func, host)
code.interact('App Engine interactive console for %s' % (app_id,), None, locals())
最后用下面这句命令运行这个程序(假设程序名为appengine_console.py),就能访问数据库了。python appengine_console.py 你的应用程序名
访问时会要求提供用户名和密码,注意用户名是不含@gmail.com的。文章下面还讲述了怎么封装这种数据库操作,这里就不再贴出了。
注意这种方式的限制:
- 优先级最低,不会影响网站的正常访问。
- 访问计算在配额内(HTTP方式)。
- API仍然有1MB的限制。
0条评论 你不来一发么↓