正在加载...

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.

相关阅读:



“Google App Engine 入门:上传应用程序” 共有26条留言

  • ray On

    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错误,无法启动程序。

  • mad On

    现在创建应用程序需要SMS验证 发送到手机上 咋办呢

  • lintao-z On

    成功了,终于上传上去了。哈哈哈哈哈,非常感谢徐老师。。。你很赞!!

    继续学习中。。。。

  • houkai On

    有vpn的 开vpn上传程序吧

  • hotmy On

    很明确的告诉你,https://appengine.google.com网址被墙!我也遇到同样的问题。

  • rolyer On

    我在上传应用到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.

  • 卫星地图 On

    不知道能不能支持php

  • 卫星地图 On

    好想用这个技术,可惜不是很明白流程

  • huraky On

    不好意思,现在又正常运行了!

  • huraky On

    为什么我把最新的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
    请问是什么原因呢?

  • doolittle On

    感谢徐明达人的教程
    我也把一个app用上了
    http://uestc2010.appspot.com/

  • xuming On

    @fml
    去google的管理平台删除

  • fml On

    我Create了好几个Application如何才能删掉这些app?

  • xioubin On

    我先用一个GEA账户上传了,要用另一个账户上传怎么清楚缓存?

  • 云在天边 On

    @yunzcm
    你把index.yaml里面的只有一个name的单属性删掉就行了

  • 修改一下吧 On

    邮件和博客/网站,,,填中文就好像会出错,让整个网站错掉呢

  • Keengle On

    最好先在本地测试成功了再上传。如果还是错误的话,参照这篇文章:GAE上传web app出现索引错误
    http://www.kgblog.net/2009/05/12/gaeUploadError.html

  • yunzcm On

    请问一下 我试了两次了 每次都是 HTTP 500 - 内部服务器错误 怎么回事呀
    麻烦你给回个邮件好吗

  • lampeter121 On

    谢谢你的教程,我已完成我的第一个GAE应用
    http://lampeter121.appspot.com

12»

我要留言


google reader 抓虾
bloglines my yahoo
哪吒 鲜果
* 更多订阅本站方式请看 订阅帮助