【发布时间】: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