【发布时间】:2020-08-02 15:49:39
【问题描述】:
有一个注册表。如何将个人资料图片添加到数据库并立即取回。我知道AJAX 是可能的,但我不知道如何实现它。我可以使用BLOB 类型将图像名称发送到数据库,但无法在个人资料页面上打印我的图像。有什么问题?
Registration code:
from flask_mysqldb import MySQL
import MySQLdb.cursors
UPLOAD_FOLDER = 'static/uploads/'
@app.route('/register', methods=['GET', 'POST'])
def register():
if request.method == 'POST':
firstname = request.form['firstname']
lastname = request.form['lastname']
email = request.form['email']
filenames = request.files['files']
uploaded_files = request.files.getlist("file[]")
filenames = []
for file in uploaded_files:
if file and allowed_file(file.filename):
filename = secure_filename(file.filename)
file.save(os.path.join(app.config['UPLOAD_FOLDER'],filename))
filenames.append(filename)
cur = mysql.connection.cursor()
cur.execute('INSERT INTO users.data(filename) VALUES (%s)',(filename))
# This line is essential, store the data in session
session['filenames'] = filenames
cur = mysql.connection.cursor()
session['email'] = email
session['firstname'] = firstname
cur.execute('INSERT INTO users.data(firstname, lastname, email) VALUES (%s, %s, %s)', (firstname, lastname, email))
mysql.connection.commit()
cur.close()
return redirect(url_for('profile'))
profile.html:
@app.route('/profile', methods=['GET'])
def profile():
if request.method == 'GET':
return render_template('profile.html', data=data, filenames=filenames)
register.html:
<input type="firstname" name="firstname" placeholder="Firstname">
<input type="lastname" name="lastname" placeholder="Lastname">
<input type="email" name="email" placeholder="First name">
<input type='file' name="files" id="uploadPDF">
<button>Register</button>
profile.html:
<h2>Welcome, {{ firstname }}</h2>
{% for file in filenames %}
<h1>{{ file }}</h1>
{% endfor %}
【问题讨论】:
标签: python mysql python-3.x flask