1

我点击了这个链接:“ https://pypi.python.org/pypi/bottle-mysql/0.1.1

和“ http://bottlepy.org/docs/dev/

这是我的 py 文件:

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

app = bottle.Bottle()
# # dbhost is optional, default is localhost
plugin = bottle_mysql.Plugin(dbuser='root', dbpass='root', dbname='delhipoc')
app.install(plugin)
@route('/hai/<name>')

def show(name,dbname):
    dbname.execute('SELECT id from poc_people where name="%s"', (name))
    print "i am in show"
    return template('<b>Hello {{name}}</b>!',name=name)

run(host='localhost', port=8080)       

这是我的代码,它会抛出如下错误:

Traceback (most recent call last):
File "C:\Python27\lib\site-packages\bottle.py", line 764, i
return route.call(**args)
File "C:\Python27\lib\site-packages\bottle.py", line 1575,
rv = callback(*a, **ka)
TypeError: show() takes exactly 2 arguments (1 given)

请帮我

4

2 回答 2

0

简单的。更改此行:

def show(name,dbname):

对此:

def show(name, delhipoc):

更好的是,使用dbname = 'db'然后

def show(name, db):

MySQL 插件为其数据库名称参数选择了一个不幸的名称。将其称为类似 会更清楚db_parameter_name,因为它实际上指的是装饰 Python 函数中 db 参数的名称

于 2013-07-10T03:47:39.140 回答
0

不熟悉bottle-mysql,但在您提供的示例中:

@app.route('/show/:<tem>')

在您的代码中:

@route('/hai/<name>')

它可能期望:

@route('/hai/:<name>')
于 2013-07-09T13:09:02.800 回答