我從終端創建一個數據庫表,現在我想插入數據到它使用下面的代碼,sql_insert_reg語句,它被用作SQL insert命令與我在終端插入操作中使用的相同,但是在python文件中使用不會插入數據。我正在學習使用mysql在flask中,這裏是我的代碼。此代碼不會給出錯誤,但不會執行任何操作,因爲我期望它!(見截圖..編輯現在)無法插入數據到MySQLdb使用python-flask
mysql = MySQL()
app.config['MYSQL_DATABASE_USER'] = 'root'
app.config['MYSQL_DATABASE_PASSWORD'] = 'root'
app.config['MYSQL_DATABASE_DB'] = 'EmpData'
app.config['MYSQL_DATABASE_HOST'] = 'localhost'
mysql.init_app(app)
class RegistrationForm(Form):
username = TextField('Username', [validators.Length(min=4, max=25)])
password = PasswordField('New Password', [
validators.Required(),
validators.EqualTo('confirm', message='Passwords must match')])
confirm = PasswordField('Repeat Password')
accept_tos = BooleanField('I accept the TOS', [validators.Required()])
@app.route('/register',methods=['GET','POST'])
def register():
form = RegistrationForm(request.form)
flash('login details')
session['tmp'] = 43
if request.method == 'POST' and form.validate():
username = form.username.data
password = form.password.data
sql_insert_reg = "INSERT INTO User(userName,password) VALUES(%s,%s)"
#flash(sql_insert_reg)
conn = mysql.connect()
cursor = mysql.get_db().cursor()
cursor.execute(sql_insert_reg,(username,password))
conn.commit()
return render_template('register.html',form=form)
這是我上傳below..please看到的條目USEID 2則直接進入6 ..和我被改變的答案,建議我看到這個截圖!任何人都可以瞭望現場背後的問題!
請幫幫我!
不,不,不。今年的新年度決議需要永遠不要再使用%運算符編寫SQL,即使對於測試系統也是如此。你應該養成使用cursor.execute()來構建每個查詢的習慣,每次都是這樣,沒有例外。然後閱讀如何使用salted hash值管理auth ...不要再以純文本存儲密碼。 – dylrei
@dylrei好的我會讓我的代碼更好...謝謝...你能幫忙找出答案 –