几个bottle插件

上篇《Bottle的插件与view装饰器冲突问题》里说到的问题就是我在写这几个插件时碰到的问题。

为便于使用bottle写了一组插件。最初自己用的时候是把所有功能都写在一个插件里,感觉有点笨重,不适合灵活组合,所以分拆改写成现在的样子。

包含

  1. beaker.BeakerPlugin
  2. params.ParamsPlugin
  3. login.LoginPlugin

beaker.BeakerPlugin

Beaker session插件,比bottle的官方beaker插件更便于使用——其实官方的beaker插件什么事都没做,跟直接用beaker没什么区别。

构造函数:

BeakerPlugin(keyword="session")

参数:

  1. keyword : beaker session使用的参数名,默认为session,如请求响应函数不包含此参数,则此插件被忽略,如包含此参数,则自动从请求环境中读取beaker的session对象

无可用route参数。

必须配合beaker midware使用,使用方法见beaker文档或示例程序demo.py。

params.ParamsPlugin

参数插件,自动把请求参数转为函数调用参数,默认使用utf-8编码转为Unicode,自动根据请求方法读取query或forms,如果设置了json_params选项,则读取json。

构造函数:

ParamsPlugin(json_params=False, encode="utf-8")

参数:

  1. json_params : 是否使用json参数。默认为False,如果设置为True则解析 bottle.request.json 的值,以dict方式解析为对应参数。
  2. encode : 指定请求编码方式。默认为utf-8。

route参数:

在请求的route中也可以使用 json_params ,用于对特定请求使用json格式。

login.LoginPlugin

简单的登录处理插件。如果请求需要用户登录时加上登录参数(默认为login),则会在处理请求前调用login_func处理登录操作,成功则将结果返回给login参数。

因为处理登录操作通常需要依赖数据库和session,所以需要两个额外参数:db和session。这两个参数将会被传递给login_func。

所以使用本插件至少需要同时安装一个数据库(或类似的如sqlalchemy)插件,和类似本插件包中的BeakerPlugin这样的session插件。

构造函数:

LoginPlugin(login_func, keyword="login", dbkeyword="db", sessionkeyworkd="session")

参数:

  1. login_func:登录处理函数,无默认值,带两个参数:db和session用于传入数据库和session,参数值来值相应插件(所以其它插件必须先于本插件安装),返回值将被赋给login参数。
  2. keyword:login参数名,默认为login。
  3. dbkeyword:数据库插件的参数名,默认为db。
  4. sessionkeyword:session插件的参数名,默认为session

无可用route参数

源码已发在github

时间: 2024-10-12 00:23:31

几个bottle插件的相关文章

微型 Python Web 框架 Bottle

Bottle 是一个非常小巧但高效的微型 Python Web 框架, 它被设计为仅仅只有一个文件的Python模块, 并且除Python标准库外, 它不依赖于任何第三方模块. 路由(Routing): 将请求映射到函数, 可以创建十分优雅的 URL 模板(Templates): Pythonic 并且快速的 Python 内置模板引擎, 同时还支持 mako, jinja2, cheetah 等第三方模板引擎 工具集(Utilites): 快速的读取 form 数据, 上传文件, 访问 coo

微型 Python Web 框架: Bottle

微型 Python Web 框架: Bottle 在 19/09/11 07:04 PM 由 COSTONY 发表 Bottle 是一个非常小巧但高效的微型 Python Web 框架,它被设计为仅仅只有一个文件的Python模块,并且除Python标准库外,它不依赖于任何第三方模块. 路由(Routing):将请求映射到函数,可以创建十分优雅的 URL 模板(Templates):Pythonic 并且快速的 Python 内置模板引擎,同时还支持 mako, jinja2, cheetah

python bottle使用多个端口(多个进程)提高并发

我的程序是用python结合bottle框架写的,但bottle自带wsgi原本只是单进程单线程运行模式(Bottle 默认运行在内置的 wsgiref 服务器上面.这个单线程的 HTTP 服务器在开发的时候特别有用,但其性能低下,在服务器负载不断增加的时候也许会是性能瓶颈, 一次只能响应一个请求).为了提升程序的处理能力,首先要启用多线程,即在程序中使用gevent( 大多数服务器的线程池都限制了线程池中线程的数量,避免创建和切换线程的代价.尽管和进程 (fork)比起来,线程还是挺便宜的.但

python bottle使用多个端口(多个进程)提升并发数

我的程序是用python结合bottle框架写的,但bottle自带wsgi原本只是单进程单线程运行模式(Bottle 默认运行在内置的 wsgiref 服务器上面.这个单线程的 HTTP 服务器在开发的时候特别有用,但其性能低下,在服务器负载不断增加的时候也许会是性能瓶颈, 一次只能响应一个请求).为了提升程序的处理能力,首先要启用多线程,即在程序中使用gevent( 大多数服务器的线程池都限制了线程池中线程的数量,避免创建和切换线程的代价.尽管和进程 (fork)比起来,线程还是挺便宜的.但

Bottle开发者中文文档(0)——目录

Bottle 教程目录 ■ 安装 ■ 快速开始“hello World” □ 默认的应用程序 ■ 快速开始“hello World” ■ 请求路由 □ 动态路由 □ HTTP请求方式 □ 路由静态文件 □ 错误页面 ■ 生成内容 □ 静态文件 □ HTTP错误和重定向 □ 响应对象 □ Cookies ■ 请求数据 □ FormsDict简介 □ Cookies □ HTTP头 □ 查询变量 □ HTML <form> Handling □ 文件上传 □ JSON □ 原始请求主体 □ WSG

linux动态监控dstat&amp;&amp;glances&amp;&amp;psutil&amp;&amp;bottle

安装dstat yum install dstat 安装glances yum install python-devel pip install glances 如果我们安装了 Bottle 这个 web 框架,还能够通过 web 浏览器显示和命令行终端相同的监控界面. 安装bottlepip install bottle 1.dstat 使用 man dstat DSTAT(1)DSTAT(1) 名称        dstat - 用于生成系统资源统计信息的通用工具 概要        dst

使用 Chrome 浏览器插件 Web Scraper 10分钟轻松实现网页数据的爬取

本文标签: WebScraper Chrome浏览器插件 网页数据的爬取 使用Chrome 浏览器插件 Web Scraper 可以轻松实现网页数据的爬取,不写代码,鼠标操作,点哪爬哪,还不用考虑爬虫中的登陆.验证码.异步加载等复杂问题. Web Scraper插件 Web Scraper 官网中的简介: Web Scraper Extension (Free!)Using our extension you can create a plan (sitemap) how a web site

eclipse插件之Findbugs、Checkstyle、PMD安装及使用

一.什么是Findbugs.checkstyle.PMD Findbugs.checkstyle和PMD都可以作为插件插入eclipse,当然也有单独的工具可以实现他们的功能,比如Findbugs Tool就可以不必插入eclipse就可以使用. 三者的功能如下表: 工具 目的 检查项 FindBugs 检查.class 基于Bug Patterns概念,查找javabytecode(.class文件)中的潜在bug 主要检查bytecode中的bug patterns,如NullPoint空指

eclipse安装java ee插件方法步骤

1.本人以前使用的MyEclipse进行Javaweb开发,但是后来由于myeclipse实在太臃肿,经常在运行的过程中不流畅 (可能电脑内存也不是太高吧)   !所以坚决换用eclipse,但是问题来了,下载的eclipse因为是标准版所以也不支持Javaweb开发,所以要来配置一下开发环境,安装Javaee开发插件   ,以下为安装步骤 1.1 在Eclipse中菜单help选项中选择install new software选项 1.2 在work with 栏中输入 http://down