[英]NameError: name 'username' is not defined in my form
@app.route('/register/go', methods=['GET', 'POST'])
def register():
global username, password, email
if request.method == 'POST' and 'username' in request.form and 'password' in request.form:
# Create variables for easy access
username = request.form['username']
password = request.form['password']
email = request.form['email']
cursor.execute('SELECT * FROM accounts WHERE username = %s', [username])
account = cursor.fetchone()
if account:
cursor.execute('INSERT INTO accounts VALUES(NULL,%s, %s, %s)', [username, password, email])
connection.commit()
msg = 'success'
# Show registration form with message (if any)
return render_template('register.html')
我持續收到以下代碼行的錯誤,因為“ NameError:未定義名稱'用戶名'”
cursor.execute('SELECT * FROM accounts WHERE username = %s', [username])
即使您將username
為全局,也需要為其賦予一個值。 用這個:
username = ''
global username
如果if
條件失敗, if
不會設置該變量。 但是,如果不填寫表單,則根本不應該將其插入數據庫。 您應該將該代碼移至if
塊中。
另外,您的if account
條件是向后的。 如果該帳戶尚不存在,則只應插入一行。
@app.route('/register/go', methods=['GET', 'POST'])
def register():
global username, password, email
if request.method == 'POST' and 'username' in request.form and 'password' in request.form:
# Create variables for easy access
username = request.form['username']
password = request.form['password']
email = request.form['email']
cursor.execute('SELECT * FROM accounts WHERE username = %s', [username])
account = cursor.fetchone()
if account:
msg = 'username already taken'
else:
cursor.execute('INSERT INTO accounts VALUES(NULL,%s, %s, %s)', [username, password, email])
connection.commit()
msg = 'success'
else:
msg = 'Username and password are required'
# Show registration form with message (if any)
return render_template('register.html')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.