添加到会话和提交flas时,部分数据丢失

2024-07-04 09:15:16 发布

您现在位置:Python中文网/ 问答频道 /正文

模型是

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添加(用户)后跟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('*'))

所需的网址是在照片网址。但是每个帖子只有一个单一的url。你知道吗

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


Tags: form数据库dbdatadatestringsessioncolumn
1条回答
网友
1楼 · 发布于 2024-07-04 09:15:16

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

相关问题 更多 >

    热门问题