Bottle 的 view 与 sqlite 插件冲突的问题

最近在使用bottle+sqlite数据库,在实际使用中发现其模板系统view和sqlite会有冲突。

看下面一段代码:

@app.route('/index')
@view('index')
def index(db):
    return

看似没什么问题,但是运行时会报如下错误:

TypeError: index() takes exactly 1 arguments (0 given)

明显函数index()中的db参数未成功传入。

找了一下,在github上有人提交了这个issue: https://github.com/defnull/bottle/issues/207

二楼曰:

Sqlite plugin is trying to inject db parameter in view function, so the plugin is skipped because function don’t receive a db parameter.

One option to solve it: @route(‘/show/:post_id’, apply=[view('index')])

It is a +1 to deprecate @view decorator, like we are discussing about template plugins.

所以将开头那段改为如下内容即可:

@app.route('/index', apply=[view('index')])
def index(db):
    return

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。