Flask user image input

Stuck on user image input, everything works except picture, but I don’t understand how to create picture object for flask_sqlalchemy, all the time shows me error. The idea is that user input all data and image and information will be available on home screen.

    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'

Answer

Your image should go somewhere on the filesystem, not the database. You can put it into your flask static directory and store path to it in the database. Your picture column will then become:

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

And then you accept the image with something like this:

    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

There are more examples in Flask docs: Uploading Files