我正在尝试连接到瓶子框架中的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)',)
您可能希望将db创建为全局变量,并将其作为函数show()的参数删除,或者可能使其成为可选变量
bottle-mysql的作者说:
为了自动检测需要数据库连接的路由,插件搜索需要db关键字参数(可配置)的路由回调,并跳过不需要的路由回调。
每条路线都需要配置为属于应用程序,否则应用程序的插件无法通过该路径发送数据。所以你确实需要app.
中的“@app.route('/show/<a>')
”
并且最后一行的运行语句也需要指定应用程序,否则它将无法识别属于该应用程序的路由。
run(app, host='192.168.1.19', port=8080, debug=True)