Google App Engine 入门:上传应用程序
五月 19th, 2008
创建和管理GAE应用程序,都需要使用GAE控制台程序来进行。其中,用于上传的命令行工具叫做 appcfg.py.
Note: 到目前为止,还没有办法删除已经发布的应用。这个功能会在稍后提供。在现在的预览测试阶段,每个用户可以注册3个应用程序ID,如果你不想使用你自己的应用程序ID,你可以仅仅读一下这一章,到你真正想发布自己的应用的时候再尝试.
注册应用程序
访问http://appengine.google.com/,使用你的Google帐号登录到App Engine管理平台。(如果你还没有Google帐号,请先申请一个)
为了创建一个新的GAE应用,请点击按钮 "Create an Application" ,按照提示注册应用程序ID,应用程序ID的名字必须是唯一的。创建ID后,你就可以拥有一个http://application-id.appspot.com/ 这样的URL地址来访问你的WEB应用了.当然,如果你拥有自己的域名的话,也可以将其绑定到你自己的应用。
修改 app.yaml , 吧 application: 的值设置为你刚刚申请的应用程序ID.
上传应用程序
执行命令行程序:
appcfg.py update helloworld/
按照提示,输入您自己的Google 用户名和密码.
现在你已经可以使用如下地址访问您刚刚上传的WEB应用了
http://application-id.appspot.com
恭喜!
你已经完成了这个教程的学习了.想要了解关于Google App Engine的更多相关内容,您可以继续查看 the App Engine documentation.
2010-08-30 20:05:53 Running command: "['C:\\Python25\\python.exe', 'C:\\Program Files\\Google\\google_appengine\\dev_appserver.py', '--admin_console_server=', '--port=8081', 'C:\\Program Files\\Google\\google_appengine\\micolog0']"
WARNING 2010-08-30 20:05:54,559 datastore_file_stub.py] Could not read datastore data from c:\users\admini~1\appdata\local\temp\dev_appserver.datastore.history
INFO 2010-08-30 20:05:54,573 dev_appserver_main.py] Running application seogroupshare on port 8081: http://localhost:8081
INFO 2010-08-30 20:05:58,381 model.py] module base reloaded
INFO 2010-08-30 20:05:58,552 base.py] module base reloaded
ERROR 2010-08-30 20:05:58,739 dev_appserver.py] Exception encountered handling request
Traceback (most recent call last):
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 2245, in _HandleRequest
base_env_dict=env_dict)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 334, in Dispatch
base_env_dict=base_env_dict)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1743, in Dispatch
self._module_dict)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1654, in ExecuteCGI
reset_modules = exec_script(handler_path, cgi_path, hook)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1555, in ExecuteOrImportScript
exec module_code in script_module.__dict__
File "C:\Program Files\Google\google_appengine\micolog0\blog.py", line 720, in
main()
File "C:\Program Files\Google\google_appengine\micolog0\blog.py", line 715, in main
g_blog.application=application
AttributeError: 'NoneType' object has no attribute 'application'
INFO 2010-08-30 20:05:58,739 dev_appserver.py] "GET / HTTP/1.1" 500 -
这是 log 请问为什么一直有500错误,无法启动程序。
现在创建应用程序需要SMS验证 发送到手机上 咋办呢
成功了,终于上传上去了。哈哈哈哈哈,非常感谢徐老师。。。你很赞!!
继续学习中。。。。
有vpn的 开vpn上传程序吧
很明确的告诉你,https://appengine.google.com网址被墙!我也遇到同样的问题。
我在上传应用到Google App Engine时遇到了些问题,希望您能帮助我解决(我的邮箱:rolyer.live@gmail.com),谢谢!!
Python版本:2.5.2
不论是在win 7或win 2003下都没有上传成功。
在网上找的方,也没有用:
set HTTP_PROXY=http://google.cn:80
set HTTPS_PROXY=http://google.cn:80
错误信息如下
2010-06-16 01:03:07 Running command: "['D:\\Program Files\\Python\\pythonw.exe', 'D:\\Program Files\\Google\\google_appengine\\appcfg.py', '--no_cookies', u'--email=rolyer.live@gmail.com', '--passin', 'update', u'D:\\Program Files\\Google\\google_appengine\\micolog']"
Application: rolyers; version: 1.
Server: appengine.google.com.
Scanning files on local disk.
Initiating update.
2010-06-16 01:03:09,348 ERROR appcfg.py:1568 An unexpected error occurred. Aborting.
Traceback (most recent call last):
File "D:\Program Files\Google\google_appengine\google\appengine\tools\appcfg.py", line 1535, in DoUpload
missing_files = self.Begin()
File "D:\Program Files\Google\google_appengine\google\appengine\tools\appcfg.py", line 1305, in Begin
version=self.version, payload=self.config.ToYAML())
File "D:\Program Files\Google\google_appengine\google\appengine\tools\appengine_rpc.py", line 346, in Send
f = self.opener.open(req)
File "D:\Program Files\Python\lib\urllib2.py", line 381, in open
response = self._open(req, data)
File "D:\Program Files\Python\lib\urllib2.py", line 399, in _open
'_open', req)
File "D:\Program Files\Python\lib\urllib2.py", line 360, in _call_chain
result = func(*args)
File "D:\Program Files\Python\lib\urllib2.py", line 1115, in https_open
return self.do_open(httplib.HTTPSConnection, req)
File "D:\Program Files\Python\lib\urllib2.py", line 1082, in do_open
raise URLError(err)
URLError:
Traceback (most recent call last):
File "D:\Program Files\Google\google_appengine\appcfg.py", line 68, in
run_file(__file__, globals())
File "D:\Program Files\Google\google_appengine\appcfg.py", line 64, in run_file
execfile(script_path, globals_)
File "D:\Program Files\Google\google_appengine\google\appengine\tools\appcfg.py", line 2757, in
main(sys.argv)
File "D:\Program Files\Google\google_appengine\google\appengine\tools\appcfg.py", line 2748, in main
result = AppCfgApp(argv).Run()
File "D:\Program Files\Google\google_appengine\google\appengine\tools\appcfg.py", line 1763, in Run
self.action(self)
File "D:\Program Files\Google\google_appengine\google\appengine\tools\appcfg.py", line 2619, in __call__
return method()
File "D:\Program Files\Google\google_appengine\google\appengine\tools\appcfg.py", line 2070, in Update
lambda path: open(os.path.join(basepath, path), 'rb'))
File "D:\Program Files\Google\google_appengine\google\appengine\tools\appcfg.py", line 1535, in DoUpload
missing_files = self.Begin()
File "D:\Program Files\Google\google_appengine\google\appengine\tools\appcfg.py", line 1305, in Begin
version=self.version, payload=self.config.ToYAML())
File "D:\Program Files\Google\google_appengine\google\appengine\tools\appengine_rpc.py", line 346, in Send
f = self.opener.open(req)
File "D:\Program Files\Python\lib\urllib2.py", line 381, in open
response = self._open(req, data)
File "D:\Program Files\Python\lib\urllib2.py", line 399, in _open
'_open', req)
File "D:\Program Files\Python\lib\urllib2.py", line 360, in _call_chain
result = func(*args)
File "D:\Program Files\Python\lib\urllib2.py", line 1115, in https_open
return self.do_open(httplib.HTTPSConnection, req)
File "D:\Program Files\Python\lib\urllib2.py", line 1082, in do_open
raise URLError(err)
urllib2.URLError:
2010-06-16 01:03:09 (Process exited with code 1)
You can close this window now.
不知道能不能支持php
好想用这个技术,可惜不是很明白流程
7
不好意思,现在又正常运行了!
为什么我把最新的0.7 beta3发布上去时运行时提示:
Traceback (most recent call last):
File "/base/python_lib/versions/1/google/appengine/ext/webapp/__init__.py", line 507, in __call__
handler.get(*groups)
File "/base/data/home/apps/huraky/1.340554691500988944/blog.py", line 95, in get
self.doget(page)
File "/base/data/home/apps/huraky/1.340554691500988944/base.py", line 102, in _wrapper
logging.debug(html[3])
IndexError: tuple index out of range
请问是什么原因呢?
感谢徐明达人的教程
我也把一个app用上了
http://uestc2010.appspot.com/
@fml
去google的管理平台删除
我Create了好几个Application如何才能删掉这些app?
我先用一个GEA账户上传了,要用另一个账户上传怎么清楚缓存?
@yunzcm
你把index.yaml里面的只有一个name的单属性删掉就行了
邮件和博客/网站,,,填中文就好像会出错,让整个网站错掉呢
最好先在本地测试成功了再上传。如果还是错误的话,参照这篇文章:GAE上传web app出现索引错误
http://www.kgblog.net/2009/05/12/gaeUploadError.html
请问一下 我试了两次了 每次都是 HTTP 500 - 内部服务器错误 怎么回事呀
麻烦你给回个邮件好吗
谢谢你的教程,我已完成我的第一个GAE应用
http://lampeter121.appspot.com