limodou的学习记录
limodou是一个程序员,他关心的焦点是Python, DocBook, Open Source ...

导航

Blog统计
  • 文章 - 927
  • 收藏 - 0
  • 评论 - 2911
  • Trackbacks - 16
公告

文章

收藏

    相册

      DocBook

      python

      Pythoner in 中国

      Python开源项目

      技术

      其它

      我的东东

      我的开源项目

      存档


      正在读取评论……
       

      前阵子我已经在GAE上申请成功的一个帐号,因此创建了一个 http://ulipad.appspot.com,不过它是我直接使用GAE的SDK开发的,其中改造了web2py的模板。现在Massimo已经声明web2py的最新版本已经可以支持GAE了,并且给出了一个视频。从视频上看,首先是在本地进行开发,然后部署到GAE上去。下面是我的一个实践的记录。

      1. 先从svn中同步成最新的版本。如果你仔细观察,你会看到有app.yaml和cgihandler.py,它们将用来处理wsgi的请求。如果你打开app.yaml,可以看到:

      application: web2py
      version: 1
      api_version: 1
      runtime: Python

      handlers:
      - url: .*
        script: cgihandler.py

      很明显,所以有处理都交给cgihandler.py了。因为web2py可以处理静态文件,因此也不需要对静态文件单独配置。

      2. 在本地的GAE环境下创建一个开发目录,我起名为web2try。这个开发目录要看你的安装路径的,我是在windows下进行的,路径为C:\Program Files\Google\google_appengine。

      3. 将web2py目录下的所有东西导出。我是使用svn的export命令。这样,只保留有用的源码,象.svn之类的东西就没有了。然后再将导出的内容拷贝到web2try目录下。这样看上去基本上就是:

      applications/
          __init__.py
      gluon/
      app.yaml
      cgihandler.py
      web2py.py

      是不是与你的有些不同,没关系,是因为我把认为无用的东西删除了。使用全部的内容,你是可以在本地GAE环境下进行开发的,但是上传时会发现文件非常多。因此我的做法是在另外的目录下进行开发,GAE中只保留上传的内容。在applications下,现在是空的,在我开发好app之后会拷贝过来。web2py在这一点还是好的,每个app是独立的。admin我没有保留,因为在GAE上不能进行写文件操作,所以你无法直接在GAE中使用admin进行开发,所以不要了。examples也不要了,太大了。经过精简后,文件数控制在80左右。

      4. 本地开发。这块就不多做介绍了。只强调几点:

      a)注意controller中:

      response.session_id=None # comment if you want to store sessions

      这句话很重要。因为GAE不能写文件,所以这样的话就可以暂时不使用session了。但如果你要写,可能目前还存在问题。

      b)如果你需要使用数据库,可以:

      from gluon.contrib import gql
      db=gql.SQLDB()

      其它的基本上就没有什么区别的。不过我还没有试过,所以也不清楚是否存在问题。而且GAE的数据库不是真正的关系数据库,所以有些功能没有,比如查询时没有不等于,like等。而且它还有一些其它的扩展,如Expando模型,可以动态设置属性,还有一些非关系数据的字段类型,如ListProperty等。所以数据库这块要仔细一些。

      5. 在本地开发完毕后,将app拷贝到applications目录下。

      6. 上传。上传之前请注意检查你的app.yaml中的application名字与你在GAE中创建的app的名字要相同。

      不过因为我是在windows下开发,所以遇到了一个问题是关于回车符的。这个问题在邮件列表中得到了解决。

      上面就是我的记录,测试的功能还很不完整,可能需要随着使用再慢慢发现。

      http://web2try.appspot.com/Form/default/index 是我使用web2py搭建的一个例子,只是一个表格模块的测试,可以看一下。



      Trackback: http://tb.donews.net/TrackBack.aspx?PostId=1287684


      [点击此处收藏本文]  发表于2008年05月08日 10:05 AM




      正在读取评论……
      大名
      网址
      验证码
      评论