gpt4 book ai didi

python - 添加到 session 和提交 flask 时部分数据丢失

转载 作者:行者123 更新时间:2023-11-29 11:23:19 27 4
gpt4 key购买 nike

型号为

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是发布照片的URL。

表单提交后。

user = User(artistname = form.artist.data,photourl = "",
description = form.description.data,contactInfo = form.contactinfo.data,date = datetime.datetime.utcnow().date() )

我添加了所有详细信息,但没有照片网址。

现在我列出了下面代码中存储在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 列下数据库的 user 表中,只有 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('*'))

所需的网址应位于照片网址中。但每个帖子仅存在一个单个网址

我只是疯了,不知道发生了什么?

最佳答案

根据 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"]
}

关于python - 添加到 session 和提交 flask 时部分数据丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38607812/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com