您的位置:首页 > 其它

1.6 PLUGINS(插件)

2016-01-11 14:07 363 查看
在 0.9 版本中添加。

Bottle的核心细节涵盖大多数的应用需求,但是作为一个小型框架,它依然有所欠缺。这就是插件排上用场的时候了。插件加入了框架缺少的功能,整合第三方库,或者只是自动化一些重复性工作。

我们有一个可用的插件的列表。你的问题可能早被某个插件解决了。如果没有,插件开发手册也许会帮到你。

插件的效果和API是多种多样的并且取决于特定的环境。例如SQLitePlugin插件的回调函数要求一个db关键字参数并创建一个新的数据库连接当回调函数被调用的时候。这使得数据库操作非常方便:

from bottle import route, install, template
from bottle_sqlite import SQLitePlugin

install(SQLitePlugin(dbfile='/tmp/test.db'))

@route('/show/<post_id:int>')
def show(db, post_id):
c = db.execute('SELECT title, content FROM posts WHERE id = ?', (post_id,))
row = c.fetchone()
return template('show_post', title=row['title'], text=row['content'])

@route('/contact')
def contact_page():
''' This callback does not need a db connection. Because the 'db'
keyword argument is missing, the sqlite plugin ignores this callback
completely. '''
return template('contact')

其它的插件也许在线程安全的对象里,改变请求对象的细节,过滤回调函数返回的数据。一个可信的插件可以检查环境的问题并返回登录页面而不是调用原始的回调函数。确切发生了什么取决于插件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  bottle框架 插件