#......
@app.route('/edit', methods=['GET', 'POST'])
def edit():
form = EditForm()
cur = mysql.connection.cursor()
cur.execute('''SELECT * FROM User WHERE userId > 0''')
un = cur.fetchall()
cur = mysql.connection.cursor()
cur.execute('''SELECT * FROM Course''')
courses = cur.fetchall()
usernumber = 0
usernumber = int(request.args.get('i'))
uid = un[usernumber][0]
print('uid: %d' % uid)
if request.method == 'POST':
if form.validate() == False:
flash('Name & Email fields are required.')
return render_template('edit.html', form=form)
else:
cur = mysql.connection.cursor()
cur.execute(
"UPDATE User SET email='" +
form.email.data +
"', phone='" +
form.phone.data +
"', mphone='" +
form.mphone.data +
"', status='" +
form.status.data +
#"' WHERE userId='12' ") # ok
"' WHERE userId='" + uid + "' ")
# TypeError: int() argument must be a string or a number,
# not 'NoneType'
# and IOError: [Errno 32] Broken pipe
rv = cur.fetchall()
mysql.connection.commit()
return 'ok'
elif request.method == 'GET':
return render_template(
'edit.html',
form=form,
un=un,
usernumber=usernumber,
courses=courses)
if __name__ == '__main__':
app.run(debug=True)
Iy4uLi4uLgpAYXBwLnJvdXRlKCcvZWRpdCcsIG1ldGhvZHM9WydHRVQnLCAnUE9TVCddKQpkZWYgZWRpdCgpOgogICAgZm9ybSA9IEVkaXRGb3JtKCkKCiAgICBjdXIgPSBteXNxbC5jb25uZWN0aW9uLmN1cnNvcigpCiAgICBjdXIuZXhlY3V0ZSgnJydTRUxFQ1QgKiBGUk9NIFVzZXIgV0hFUkUgdXNlcklkID4gMCcnJykKICAgIHVuID0gY3VyLmZldGNoYWxsKCkKICAgIGN1ciA9IG15c3FsLmNvbm5lY3Rpb24uY3Vyc29yKCkKICAgIGN1ci5leGVjdXRlKCcnJ1NFTEVDVCAqIEZST00gQ291cnNlJycnKQogICAgY291cnNlcyA9IGN1ci5mZXRjaGFsbCgpCgogICAgdXNlcm51bWJlciA9IDAKICAgIHVzZXJudW1iZXIgPSBpbnQocmVxdWVzdC5hcmdzLmdldCgnaScpKQogICAgdWlkID0gdW5bdXNlcm51bWJlcl1bMF0KICAgIHByaW50KCd1aWQ6ICVkJyAlIHVpZCkKCiAgICBpZiByZXF1ZXN0Lm1ldGhvZCA9PSAnUE9TVCc6CiAgICAgICAgaWYgZm9ybS52YWxpZGF0ZSgpID09IEZhbHNlOgogICAgICAgICAgICBmbGFzaCgnTmFtZSAmIEVtYWlsIGZpZWxkcyBhcmUgcmVxdWlyZWQuJykKICAgICAgICAgICAgcmV0dXJuIHJlbmRlcl90ZW1wbGF0ZSgnZWRpdC5odG1sJywgZm9ybT1mb3JtKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIGN1ciA9IG15c3FsLmNvbm5lY3Rpb24uY3Vyc29yKCkKICAgICAgICAgICAgY3VyLmV4ZWN1dGUoCiAgICAgICAgICAgICAgICAiVVBEQVRFIFVzZXIgU0VUIGVtYWlsPSciICsKICAgICAgICAgICAgICAgIGZvcm0uZW1haWwuZGF0YSArCiAgICAgICAgICAgICAgICAiJywgcGhvbmU9JyIgKwogICAgICAgICAgICAgICAgZm9ybS5waG9uZS5kYXRhICsKICAgICAgICAgICAgICAgICInLCBtcGhvbmU9JyIgKwogICAgICAgICAgICAgICAgZm9ybS5tcGhvbmUuZGF0YSArCiAgICAgICAgICAgICAgICAiJywgc3RhdHVzPSciICsKICAgICAgICAgICAgICAgIGZvcm0uc3RhdHVzLmRhdGEgKyAKICAgICAgICAgICAgICAgICMiJyBXSEVSRSB1c2VySWQ9JzEyJyAiKSAjIG9rCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICInIFdIRVJFIHVzZXJJZD0nIiArIHVpZCArICInICIpICAKICAgICAgICAgICAgICAgICMgVHlwZUVycm9yOiBpbnQoKSBhcmd1bWVudCBtdXN0IGJlIGEgc3RyaW5nIG9yIGEgbnVtYmVyLCAKICAgICAgICAgICAgICAgICMgbm90ICdOb25lVHlwZScgCiAgICAgICAgICAgICAgICAjIGFuZCBJT0Vycm9yOiBbRXJybm8gMzJdIEJyb2tlbiBwaXBlCgogICAgICAgICAgICBydiA9IGN1ci5mZXRjaGFsbCgpCiAgICAgICAgICAgIG15c3FsLmNvbm5lY3Rpb24uY29tbWl0KCkKICAgICAgICAgICAgcmV0dXJuICdvaycKCiAgICBlbGlmIHJlcXVlc3QubWV0aG9kID09ICdHRVQnOgogICAgICAgIHJldHVybiByZW5kZXJfdGVtcGxhdGUoCiAgICAgICAgICAgICdlZGl0Lmh0bWwnLAogICAgICAgICAgICBmb3JtPWZvcm0sCiAgICAgICAgICAgIHVuPXVuLAogICAgICAgICAgICB1c2VybnVtYmVyPXVzZXJudW1iZXIsCiAgICAgICAgICAgIGNvdXJzZXM9Y291cnNlcykKCmlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CiAgICBhcHAucnVuKGRlYnVnPVRydWUp