【问题标题】:how to upload multiple images to python-sqlachemy database?如何将多个图像上传到 python-sqlalchemy 数据库?
【发布时间】:2021-01-07 23:40:01
【问题描述】:

我正在尝试使用 flask-wtf 表单将多个图像上传到 sqlalchemy 数据库。在我的表单中,一个用户可以有多个项目,这些项目可以有多个照片,所以我使用“一对多关系”如果我使用一张图片,这个例子一切正常,因为 sqlalchemy 不支持列表作为值我不知道是什么去做。

image1 = None
@app.route("/app_main_page/prekes/ceate",  methods=["GET", "POST"])
@login_required
def CreatePrekes():
    global image1
    form = UpdateItemForm()
    if form.validate_on_submit():
        if form.prekes_nuotrauka.data:
            for prekes_nuotrauka in form.prekes_nuotrauka.data:
                file = save_pict(prekes_nuotrauka)
                image1 = url_for('static', filename='profile_pictures/' + file)
            post = Preke(pavadinimas=form.pavadinimas.data, apibudinimas=form.apibudinimas.data,
                        prekes_nuotrauka=image1, author=current_user)
            db.session.add(post)
            db.session.commit()
            flash("Your post have been created", "success")
            return redirect(url_for("visos_prekes"))
    return render_template("CreatePrekes.html", title="New Post", form=form)
class UpdateItemForm(FlaskForm):
    pavadinimas = StringField("Pavadinimas", validators=[DataRequired()])
    apibudinimas = TextAreaField("Apibudinimas", validators=[DataRequired()])
    prekes_nuotrauka = MultipleFileField("Prekes nuotrauka", validators=[FileAllowed(["jpeg", "png", "jpg"])])
    submit = SubmitField("Sukurti")
class User(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(20), unique=True, nullable=False)
    password = db.Column(db.String(60), nullable=False)
    email = db.Column(db.String(60), unique=True, nullable=False)
    picture = db.Column(db.String(20), nullable=False, default="default.jpeg")
    creation_time = db.Column(db.DateTime, default=datetime.utcnow)
    item = db.relationship("Preke", backref="author", lazy=True, uselist=True)

class Preke(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    pavadinimas = db.Column(db.String(30), nullable=False)
    apibudinimas = db.Column(db.String(80), nullable=False)
    prekes_nuotrauka = db.Column(db.String(20), nullable=False, default="default.jpeg")
    creation_time = db.Column(db.DateTime, default=datetime.utcnow)
    user_id = db.Column(db.Integer, db.ForeignKey("user.id"), nullable=False)

【问题讨论】:

    标签: python-3.x flask flask-sqlalchemy flask-wtforms


    【解决方案1】:

    也许您可以使用提供uselist=Trueimage_attachement()

    另一种方法是将图像保存在一个文件夹中,并有一个包含图像路径字符串的列表。像这样:How to save multi images into database in Flask?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-15
      • 2018-11-27
      • 1970-01-01
      • 2018-06-26
      • 2015-01-01
      • 2016-08-28
      相关资源
      最近更新 更多