【发布时间】:2012-12-11 04:17:26
【问题描述】:
当我将具有整数值的内容存储为字符串时,当我检索它时,它突然变成了一个 int。
这就是我所看到的:我用这个存储
db = get_db()
hello = escape(str(request.form['name'])).striptags()
what = escape(str(request.form['content'])).striptags()
db.execute('''insert into entry (
title, content, score, approved, pub_date) values (?, ?, 0, 0,?)''',
[hello,what,int(time.time())])
raise Exception('what')
db.commit()
当我从页面提交时,例如 form['name']='1' 和 form['content']='2',Exception、hello==u'1' 和 content==u'2'。到目前为止,这一切都很好。然后我存储在DB中,但是当我去检索时,突然输入类型为int1和2。对于任何其他字符串,一切正常,例如"lorem ispum"。
在我的sql schema、title 和content 中都是string。怎么回事?
【问题讨论】:
-
你如何检测它们是整数而不是字符串?
-
我收到一个错误,其中函数在“int”类型上不起作用。另外,我通过引发错误打开 Flask 控制台并检查查询返回的内容,它确实是一个 int。
-
仍然不知道答案,但我只是通过在将查询结果提供给模板之前将查询结果转换为字符串来解决问题。
-
好的。是的,这是一种奇怪的行为,只有当数据库列类型为 INT/NUMERIC 时才会发生。
标签: python string sqlite int flask