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 に答える