Flask 用户图像输入

Flask user image input

卡在用户图像输入上,除图片外一切正常,但我不明白如何为 flask_sqlalchemy 创建图片对象,一直显示错误。 这个想法是用户输入的所有数据和图像和信息都将在主屏幕上可用。

    class Product(db.Model):
        id = db.Column(db.Integer, primary_key=True)  # auto +1
        title = db.Column(db.String(20), nullable=False)
        price = db.Column(db.Integer, nullable=False)
        description = db.Column(db.Text)
        status = db.Column(db.Boolean, default=True)
        picture =???


And: 

@app.route('/add_product', methods=['POST', 'GET'])
def create():
    if request.method == 'POST':
        title = request.form['title']
        price = request.form['price']
        description = request.form['description']
        image = ?????

        product = Product(title=title, price=price, description=description)
        try:
            db.session.add(product)
            db.session.commit()
            return redirect('/')
        except:
            return 'Error'

你的图像应该放在文件系统的某个地方,而不是数据库。您可以将其放入烧瓶静态目录并将其路径存储在数据库中。您的图片栏将变为:

picture = db.Column(db.String(254), nullable=True)

然后你接受像这样的图像:

    if request.method == 'POST':
        title = request.form['title']
        price = request.form['price']
        description = request.form['description']
        
        # accept uploaded image
        uploaded = request.files.get('image')
        if uploaded and uploaded.filename:
            filename = secure_filename(uploaded.filename)
            uploaded_path = os.path.join(app.config['UPLOAD_FOLDER'], filename)
            uploaded.save(path)
            image = uploaded_path

Flask 文档中有更多示例:Uploading Files