Добавление фото профиля в базу данных на Flask
Есть форма регистрации. Подскажите пожалуйста как можно добавить фото профиля в базу данных и сразу же получить его обратно. Знаю что можно как-то с помощью AJAX, но не знаю как это реализовать. При регистрации в базу добавляется только имя картинки, и я не могу ее получить на странице profile. В чем может быть проблема?
Код Регистрации:
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)
# 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 %}
Ответы (1 шт):
Пример 3 После прочтения думаю вопросы отпадут. Но все же вы должны понимать что все фото будут храниться у вас на сервере. Следующий вопрос как их именовать ? Как по мне есть два варика: Первый например именовать фото в id пользователя, тобиж 20.jpg 21.jpg ... Второй именовать КАК угодно, но в бд сделать столбец где будет указано имя фото для каждого юзера. Вот как то так =)