瓶子mysql连接

问题描述 投票:1回答:2

我正在尝试连接到瓶子框架中的mysql但没有成功。错误告诉我给路由提供第二个参数但我不想在url中添加其他参数。

import bottle
import bottle_mysql
from bottle import route, run, template, app

app = bottle.Bottle()
plugin = bottle_mysql.Plugin(dbuser='root', dbpass='toor', dbname='database')
app.install(plugin)

@route('/show/<a>')
def show(a, db):
    db.execute('SELECT * FROM table WHERE a > "%d"', (a,))
    return template('Hello {{name}}, how are you?', name=a)

run(host='192.168.1.19', port=8080, debug=True)

错误:

TypeError('show() takes exactly 2 arguments (1 given)',)
python mysql bottle
2个回答
0
投票

您可能希望将db创建为全局变量,并将其作为函数show()的参数删除,或者可能使其成为可选变量


0
投票

bottle-mysql的作者说:

为了自动检测需要数据库连接的路由,插件搜索需要db关键字参数(可配置)的路由回调,并跳过不需要的路由回调。

每条路线都需要配置为属于应用程序,否则应用程序的插件无法通过该路径发送数据。所以你确实需要app.中的“@app.route('/show/<a>')

并且最后一行的运行语句也需要指定应用程序,否则它将无法识别属于该应用程序的路由。

run(app, host='192.168.1.19', port=8080, debug=True)

© www.soinside.com 2019 - 2024. All rights reserved.