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. 使用ruby和python快速开发metasploit自定义模块

    使用ruby和python快速开发metasploit自定义模块 前言 本文的内容主要分为两个部分: 提供一个基本ruby模块代码框架,并快速开发自定义ruby模块 提供一个基本python模块代码框 ...

  2. Python+wxWidgets快速开发桌面小程序

    转载:http://www.blogjava.net/calvin/archive/2005/11/18/20403.html 充分体验到知识循环再用的好处,原本对Python.wxWidgets没有 ...

  3. python游戏服务器框架_Scut游戏服务器免费开源框架--快速开发(2)

    Scut快速开发(2) Python脚本开发 1 开发环境 Scut Lib版本:5.2.3.2 需要安装的软件 a) IIS和消息队列(MSMQ) 进入控制面板,程序和功能 b) SQL Serve ...

  4. python小项目实例流程-Python小项目:快速开发出一个简单的学生管理系统

    原标题:Python小项目:快速开发出一个简单的学生管理系统 本文根据实际项目中的一部分api 设计抽象出来,实例化成一个简单小例子,暂且叫作「学生管理系统」. 这个系统主要完成下面增删改查的功能: ...

  5. python小项目案例-Python小项目:快速开发出一个简单的学生管理系统

    本文根据实际项目中的一部分api 设计抽象出来,实例化成一个简单小例子,暂且叫作「学生管理系统」. 这个系统主要完成下面增删改查的功能: 包括: 学校信息的管理 教师信息的管理 学生信息的管理 根据A ...

  6. python快速入门答案-Python 开发 14 天快速入门

    专栏亮点 零基础学习,循序渐进:专栏将编程语言的学习路线提炼为基础.中级.高级三层,内容由易到难,循序渐进,简练而生动地为读者呈现知识点. 内容全面,提炼要义:从核心概念到高级知识点,包括基本数据结构 ...

  7. python 开发版-MicroPython开发之物联网快速开发板

    Python的火热让其运行在MCU端的MicroPython也逐渐迎来了春天.MicroPython的出现让Python这种"胶水语言"成功引用到嵌入式领域,也使得Python控制 ...

  8. Python+Django+Eclipse 在Windows下快速开发自己的网站

    Python+Django+Eclipse 在Windows下快速开发自己的网站 一.配置开发环境 我的开发环境是:Python3.3.2 + Django1.5.2 + Eclipse 1.安装Py ...

  9. listView无需适配器添加数据(写demo快速开发)entries属性的特殊用法

    先看下简单的布局代码 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:a ...

  10. 用python写web网页_从零开始,使用python快速开发web站点(1) | 学步园

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

最新文章

  1. C++ deque 底层原理及 queue、stack 容器的使用详解
  2. 浏览器记住密码的自动填充Input问题完美解决方案
  3. LeetCode 678. 有效的括号字符串(栈)
  4. mysql中union 查询
  5. 系统无法在此计算机硬件上运行,Windows安装程序无法将配置未在此计算机的硬件上运行的解决方案-太平洋电脑网...
  6. 首个中国AI芯片收购案完成:深鉴创立2年后并入赛灵思
  7. iOS开发 mac证书无法展开
  8. ffmpeg转h264格式的视频
  9. java---多线程及线程的概念
  10. Vue + Canvas 实现头像截图上传功能
  11. 【毕业设计】超声波红外自动调速风扇系统 - 单片机 嵌入式
  12. 使用VBA实现Excel下拉多选
  13. ps2改usb接口_PS2键盘接口改USB接口
  14. uniapp 实时定位(系统、后台运行、支持息屏)插件 Ba-Location
  15. 'https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/3.1.2/gradle-3
  16. pdf 电子签章 java_利用itextpdf实现简单的电子签章/水印等
  17. 【SW系列】计算机案例之草图文字
  18. 使用 js 将图片进行转Base64转码
  19. 学习笔记-希尔算法(交换法和移位法)
  20. LR关联及web_reg_save_param方法浅析

热门文章

  1. Cypress UI 自动化测试框架
  2. tesseract_OCR识别英文
  3. 这里excel将文本转换为数字
  4. 网络共享计算机怎么连接,两台电脑连接成局域网如何设置_两台电脑连接局域网共享的设置步骤-win7之家...
  5. 计算机语言可读性排名,计算机语言可读性强,容易记忆
  6. 【名单回顾】2019/2020年第11届蓝桥杯大赛青少年组(北京赛区)选拔赛C++初级组一二等奖获奖名单
  7. Ralph and Mushrooms (tarjan+dp)
  8. 流媒体之播放flv格式的视频
  9. 工具:dlf 强制删除文件或文件夹
  10. java实现计算器算法_怎样用java 实现计算器的 算法