2013-07-20 57 views
0

我使用Bottle框架制作了一个简单的程序。我收到此错误:错误类型错误:login_submit()只需要1个参数(0给出)

'TypeError: login_submit() takes exactly 1 argument (0 given)'

的代码是:

# -*- coding: cp1252 -*- 
import codecs 
from bottle import route, run, template 


@route('/login') 
def login_form(): 
    return '''<form method="POST" action="/login"> 
      <input name="name" type="text" /> 
      <input name="password" type="password" /> 
      <input type="submit" /> 
      </form>''' 

@route('/login', method='POST') 
def login_submit(request): 
    name = request.forms.get('name') 
    password = request.forms.get('password') 
    if check_login(name, password): 
    return "<p>Your login was correct</p>" 
    else: 
    return "<p>Login failed</p>" 

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

回答

1

From the docs,你输入的要求,而不是它作为参数:

from bottle import post, request 

... 

@route('/login', method='POST') # or @post('/login') 
def login_submit(): 
    name = request.forms.get('name') 
    password = request.forms.get('password') 
    if check_login(name, password): 
    return "<p>Your login was correct</p>" 
    else: 
    return "<p>Login failed</p>" 
+0

正确的答案,但如果你会显示一个导入'get'和'post'的解决方案,这可能会有助于展示如何将这些用作装饰器。 – sberry

相关问题