GAE+bottle+jinja2+beaker快速开发demo - Python,GAE - language - ITeye论坛

    :GAE+bottle+jinja2+beaker快速开发demo
    精华帖 (0) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (0)
    作者正文

        heartsong
        等级: 初级会员
        heartsong的博客
        性别:
        文章: 55
        积分: 80
        来自: 杭州

       发表时间:2011-02-25   最后修改:2011-02-25
    < > 猎头职位: 北京: 【北京】游戏公司诚邀php开发工程师
    相关文章: 

        在Google App Engine上用zipimport引入新版的Django
        Python Django GAE开发 环境搭建篇
        混合使用django模板和jinja模板

    推荐群组: Scala圈子
    更多相关推荐
    Python GAE

        相对于Django,bottle可以看成是一个非常精巧的python web framework了,只有一个文件就可以使用了。于是想用这个东西在gae做个简单的demo。

    1. GAE+bottle

    http://pypi.python.org/pypi/bottle

        copy那个bottle.py到gae工程的目录里,现在,可以写一个很简短的代码来测试一下:

    main.py

    from bottle import route, default_app
    from google.appengine.ext.webapp.util import run_wsgi_app

    @route
    def index():
        return 'Hello world!'

    def main():
        '''Remove this when on production '''
        bottle.debug(True)
        app = default_app()   
        run_wsgi_app(app)
    if __name__ == '__main__':
        main()

        同时,要修改app.yaml文件:

    handlers:
    - url: /.*
      script: main.py

        现在,就可以直接运行GAE,查看结果了!就这么简单!

    

    2. GAE+bottle+beaker

        在GAE+bottle的组合中,如果要使用session的话,查询到bottle的原话如下:
    How to implement sessions?

    There is no build in support for sessions because there is no right way to do it. Depending on requirements and environment you could use beaker middleware with a fitting backend or implement it yourself.

         很清楚的告诉我们,如果要使用session的话,可以考虑beaker,从这里下载:

    http://pypi.python.org/pypi/Beaker

         下载下来后,把里面的一个beaker文件夹,copy到GAE工程目录中,会作为一个package来使用。

        在上面的程序修改如下:

    main.py

    from bottle import route, default_app
    from beaker.middleware import SessionMiddleware
    from google.appengine.ext.webapp.util import run_wsgi_app

    @route('/')
    def index():
        session = request.environ['beaker.session']
        if 'refrush_times' in session:
            refrush_times = int(session['refrush_times'])
        else:
            refrush_times = 0
        refrush_times = refrush_times + 1
        session['refrush_times'] = refrush_times
        return 'Hello world! You have refrush this page for %s times.' % str(refrush_times)

    def main():
        '''Remove this when on production '''
        bottle.debug(True)
        app = default_app()

        session_opts = {
                        'session.type': 'ext:google',
                        'session.cookie_expires': True,
                        'session.auto': True,
                        }
        app = SessionMiddleware(app, session_opts)
        run_wsgi_app(app)
    if __name__ == '__main__':
        main()

        注意,session_opts里的session.type,如果在GAE下使用,一定要选ext:google,这个是我测试了几个选项之后才发现的。如果你有更好的方法,也欢迎告诉我,谢谢。

    

GAE+bottle+jinja2+beaker快速开发demo - Python,GAE - language - ITeye论坛的更多相关文章

  1. Python+Bottle+Sina SAE快速构建网站

    Bottle是新生一代Python框架的代表,利用Bottle构建网站将十分简单. Sina SAE是国内较出名的云平台之一,十分适用于个人网站的开发或创业公司网站开发. 下面将介绍如果通过Pytho ...

  2. VFP 祺佑三层开发框架快速开发 演示DEMO

    祺佑三层开发框架快速开发  演示DEMO单表增删查改 链接:http://pan.baidu.com/s/1ntHXTXn 密码:wiwb 主从分离更新链接:http://pan.baidu.com/ ...

  3. python bottle框架(WEB开发、运维开发)教程

    教程目录 一:python基础(略,基础还是自己看书学吧) 二:bottle基础 python bottle web框架简介 python bottle 框架环境安装 python bottle 框架 ...

  4. 从零开始,使用python快速开发web站点(1)

    环境:ubuntu 12.04 python版本:  2.73 ok,首先,既然是从零开始,我们需要的是一台可以运行的python的计算机环境,并且假设你已经安装好了python, (ubuntu 或 ...

  5. python快速开发Web之Django

    以前写测试框架,要么是纯python代码驱动的,要么是WinForm界面的框架,多人操作并不适合. 就想用python写个Web版的,于是想到了Web快速开发的框架Flask和Django两个 个人觉 ...

  6. 实用 | 利用 aardio 配合 Python 快速开发桌面应用

    1. 前言 大家好,我是安果! 我们都知道 Python 可以用来开发桌面应用,一旦功能开发完成,最后打包的可执行文件体积大,并且使用 Python 开发桌面应用周期相对较长 假如想快速开发一款 PC ...

  7. 《Flask Web开发——基于Python的Web应用开发实践》一字一句上机实践(上)

    目录 前言 第1章 安装 第2章 程序的基本结构 第3章 模板 第4章 Web表单 第5章 数据库 第6章 电子邮件 第7章 大型程序的结构   前言 学习Python也有一个半月时间了,学到现在感觉 ...

  8. 【Python五篇慢慢弹】快速上手学python

    快速上手学python 作者:白宁超 2016年10月4日19:59:39 摘要:python语言俨然不算新技术,七八年前甚至更早已有很多人研习,只是没有现在流行罢了.之所以当下如此盛行,我想肯定是多 ...

  9. Scut游戏服务器免费开源框架--快速开发(3)

    Scut快速开发(3) 1     开发环境 Scut Lib版本:5.2.3.2 需要安装的软件 a)        IIS和消息队列(MSMQ) b)        数据库,Sql2005以上版本 ...

随机推荐

  1. 命名空间“System.Web.Mvc”中不存在类型或命名空间“Ajax”(是否缺少程序集引用?)

    原文  http://www.cnblogs.com/LJP-JumpAndFly/p/4109602.html 好吧,非常激动的说,这个问题搞了我一个晚上,网上的帖子太少了,好像不超过2篇,而且说得 ...

  2. cpu有哪些架构

    原文:http://blog.csdn.net/wyzxg/article/details/5027738 author:skatetime:2009/12/17 这几天在下载RPM包的时候,总会看见 ...

  3. 设计模式多线程方面之Thread-Per-Message 模式

    Thread-Per-Message模式是一个很简单但很常应用的模式,尤其是在GUI程式中,我们举个例子,当您设计一个文件编辑器时,您可能像这样注册一个开启档案的事件处理:  menuOpenFile ...

  4. 基于visual Studio2013解决C语言竞赛题之0403字符统计

      题目 解决代码及点评 这道题的目标是锻炼while循环,while循环的语法是 while(循环条件) { 循环体; } 每次进入循环体之前,先判断循环条件是否满足,如果不满足,执行序列就 ...

  5. Java怎样高速构造JSON字符串

    目标:依据key/value高速构造一个JSON字符串作为參数提交到web REST API服务上. 分别測试里阿里巴巴的FastJson和Google Gson,终于我採用了Google Gson来 ...

  6. MSSQLServer的备份与还原

    最近用到了mssql2000的数据备份还原到2008上, 在备份2000时,一定注意要备份成一个文件,就是目标那里只添加一个就好,(否则待会还原数据库时要添加这两个文件,要不就报“备份了几个簇,只提供 ...

  7. gcc支持c99验证

    gcc3.0以上的版本都是支持C99标准的, 但是编译程序的时候需要加上    -std=c9  才可以: 一下程序是验证gcc是否支持c99标准的: #include <stdio.h> ...

  8. 配置SecureCRT连接Linux CentOS

    链接地址:http://f.dataguru.cn/thread-144513-1-1.html 环境:Linux:centos5.8虚拟机:VirtualBox本机:windows至于怎么安装Cen ...

  9. codeigniter ,看完这些,就可以用它做项目了

    一.MVC 1,入口文件 唯一一个让浏览器直接请求的脚本文件 2,控制器 controller 负责协调模型和视图 3,模型 model 只负责提供数据,保存数据 4,视图 只负责显示,以及搜集用户的 ...

  10. .NET Core & ASP.NET Core 1.0

    .NET Core & ASP.NET Core 1.0在Redhat峰会上正式发布 众所周知,Red Hat和微软正在努力使.NET Core成为Red Hat企业版Linux (RHEL) ...