2017-01-09 58 views
0

我正在做一些与烧瓶的应用程序,我现在正在注册。在这种情况下,我正在使用SQL而不是SQLAlchemy(只是为了更多地使用SQL) 也使用Flask-WTF来处理表单。烧瓶 - 注册新用户不起作用 - 错误的请求

我成功创建数据库表:

class RegisterForm(Form): 
    name = StringField(
    'Username', 
    validators=[DataRequired(), Length(min=4, max=25)] 
    ) 
    email = StringField(
    'Email', 
    validators=[DataRequired(), Length(min=6, max=40)] 
    ) 
    password = PasswordField(
    'Password', 
    validators=[DataRequired(), Length(min=6, max=40)]) 
    confirm = PasswordField(
    'Repeat Password', 
    validators=[DataRequired(), EqualTo('password', message='Passwords must match')] 
    ) 

在我的views.py我旁边,登记要求:

@app.route("/register/", methods=["GET", "POST"]) 
def register(): 
    form = RegisterForm(request.form) 

    if request.method == "POST" and form.validate_on_submit(): 

     name = request.form["name"] 
     email = request.form["email"] 
     password = request.form["password"] 

     g.db.connect_db() 
     g.db.execute("INSERT INTO users(name, email, password) VALUES (?,?,?)", (name, email, password)) 
     g.db.commit() 
     g.db.close() 
    return render_template("register.html", form=form) 

我的简单形式:

<form action="/" method="post"> 
      {{ form.csrf_token }} 
       <div class="form-group"> 
       <label for="usernameInput">Username</label> 
       <input type="text" name="name" class="form-control" id="usernameInput"> 
       </div> 
       <div class="form-group"> 
       <label for="emailInput">Email</label> 
       <input type="email" name="email" class="form-control" id="emailInput"> 
       </div> 
       <div class="form-group"> 
       <label for="passwordInput">Password</label> 
       <input type="password" name="password" class="form-control" id="passwordInput"> 
       </div> 
       <div class="form-group"> 
       <label for="confirmInput">Confirm password</label> 
       <input type="password" name="confirm" class="form-control" id="confirmInput"> 
       </div> 
       <button type="submit" class="btn btn-default btn-block">Register</button> 
       {% if error %} 
       <p class="error"><strong>Error:</strong> {{error}} </p> 
       {% endif %} 
      </form> 

现在我有一直在尝试,更改和修复2天,并找不到问题。当我输入所有数据并点击注册时,我会收到400个错误的请求。 也许它有点傻,我只是看不到它。

如果有人可以帮忙,我会appriciate。 如果需要更多信息或代码,请告诉我。

感谢

回答

0

您的形式张贴到/,不/register/

您尚未显示您为/定义的路线,但可能不接受POST。

+0

Okey,我现在明白了,谢谢:) 您知道这意味着什么吗? AttributeError:'_AppCtxGlobals'对象没有属性'db'? –

+0

推测这意味着你的'g'对象,不管它是什么,都没有叫做'db'的东西。如果你想获得更多的帮助,尽管你应该用一个完整的代码来发布一个新的问题,你如何设置它。 –

+0

好的。谢谢 –