вставить в столбец mysql LONGBLOB: MySQLdb._exceptions.ProgrammingError: не все аргументы преобразуются во время форматирования байтов - PullRequest
0 голосов
/ 16 июня 2020

Привет всем, я здесь новенький, и это мой первый вопрос. Я пытаюсь выполнить простую задачу, вставляя файлы (например, файлы jpeg) в столбец LONGBLOB в mysql, но продолжаю получать ошибки. Я занимаюсь этим несколько дней ...

Был бы очень признателен за помощь и руководство, сообщество в стеке действительно полезно, но не сталкивалось с подобной проблемой

Вот что у меня :

import os
from flask import Flask, render_template, request
from flask_mysqldb import MySQL


app = Flask(__name__)

app.config['MYSQL_HOST'] = 'localhost'
app.config['MYSQL_USER'] = 'root'
app.config['MYSQL_PASSWORD'] = ''
app.config['MYSQL_DATABASE'] = 'testdb'
mysql = MySQL(app)


APP_ROOT = os.path.dirname(os.path.abspath(__file__))

@app.route("/")
def index():
    return render_template("upload.html")

@app.route('/upload', methods=["POST"])
def upload():
    if request.method == "POST":
        file = request.files['file']
        uploadfile = open(file, 'rb').read()
        c = mysql.connect.cursor()
        c.execute("use testdb")
        sql = "INSERT INTO store (image) VALUES (%s)"
        c.execute(sql, (uploadfile,))
        c.connection.commit()
        c.close()

    return render_template('complete.html')

if __name__ == '__main__':
    app.run(debug=True)

''

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Uplod</title>
</head>
<body>
<form id="upload_form" action="{{ url_for ('upload') }}" method="POST" enctype="multipart/form-data">
    File:
    <input type="file" name="file" accept="image/*" required>
    <input type="submit" value="Submit">
</form>
</body>
</html>
...