模型是
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
artistname = db.Column(db.String(64))
photourl = db.Column(db.String(1000))
contactInfo = db.Column(db.String(20))
description = db.Column(db.String(500))
date = db.Column(db.Date)
def __repr__(self):
return '<User %r>' % (self.photourl)
这里photourl是张贴照片的网址。
表单提交后。
user = User(artistname = form.artist.data,photourl = "",
description = form.description.data,contactInfo = form.contactinfo.data,date = datetime.datetime.utcnow().date() )
我在没有photourl的情况下添加了所有细节。
现在我列出下面代码中存储在 filename 变量中的所有文件名。并在中间加入*。
filename = "*".join(filename)
print(filename)
样本输出出现在打印文件名的终端
mic16.jpg*nepal_earthquake_death6.png
合并所有文件名后。我将它存储在数据库中。
user.photourl = filename
print(user)
db.session.add(user)
db.session.commit()
此处终端用户的打印输出为
<User u'mic16.jpg*nepal_earthquake_death6.png'>
表示正确加载了信息。
现在当我执行 db.session.add(user)后跟db.session.commit()。在photourl列下的数据库的用户表中,只有mic16.jpg部分是零件的存储和其余部分被省略即存储*之前的部分。
数据库中没有条目。我的数据库是否是MYSQL数据库并使用phpmyadmin。我正在使用。
阅读数据库posts = User.query.order_by(User.date.desc()).limit(5).all()
photourls = []
for i in posts:
photourls.append(i.photourl.split('*'))
所需的网址应该在photourls中。但每个帖子只有单个网址。
我只是想到了,并不知道最近发生了什么?
答案 0 :(得分:1)
根据photourl字符串的大小判断,您希望将多个图像文件名保存在由星号*分隔的字符串中。更好的选择是将文件名存储在JSON数组中,每个文件名都作为字符串。
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
artistname = db.Column(db.String(64))
photourls = db.Column(JSON)
您可以使用getlist一次上传多个图片文件。
def upload():
uploaded_images = flask.request.files.getlist("file")
JSON将按如下所示进行存储。
{
"photourls":["mic16.jpg", "nepal_earthquake_death6.png"]
}