2017-01-09 86 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

好的。謝謝 –