I am making e-commerce website using flask, How can I upload Image through form and show them with product?

Viewed 12

here is add product function

@app.route('/add-product', methods=['GET', 'POST'])
def add_product():
    product_form = ProductForm()
    if product_form.validate_on_submit():
        new_product = Product(
            product_name=product_form.product_name.data,
            product_image=request.files['product_image'].read(),
            product_description=product_form.product_description.data,
            price=product_form.price.data
        )
        db.session.add(new_product)
        db.session.commit()
        return "Form has been submitted successfully!"
    return render_template('add_product.html', form=product_form), 200

Form.py i'm using wtforms

class ProductForm(FlaskForm):
    product_name = StringField('Product Name', validators=[DataRequired()])
    product_image = FileField('product_image', validators=[DataRequired()])
    product_description = StringField('Product Description')
    price = FloatField('Price', validators=[DataRequired(), NumberRange(min=1, max=9999)])
    submit = SubmitField('submit')

I'm making form using wtf quick form for just testing right now

{% block body %}
{{ wtf.quick_form(form, button_map = {"submit": "primary"}) }}
{% endblock %}
0 Answers
Related