我有一个使用WTForms和Google Cloud Datastore的Python Flask应用程序。无论使用哪种WTForms字段类型,该值都保存为字符串。
我研究了在python flask中定义模型的标准方法,但认为仅需要WTForms模型声明即可。
模型
Project_Description = TextAreaField('Project Description')
模板
{{ form.Project_Description (rows='10',
class_="govuk-textarea govuk-!-width-two-thirds",)
}}
数据存储区创建/更新功能
def update(self, data, id=None):
if id:
key = client.key('ProjectDetails', int(id))
else:
key = client.key('ProjectDetails')
entity = datastore.Entity(key=key, exclude_from_indexes=('Project_Description'))
entity.update(data)
client.put(entity)
return Datastore_Client().from_datastore(entity)
我正在从索引中删除ProjectDescription,因为当我确实将其保存为文本或Blob时,我不希望字节数的下限。当我提交表单时,数据存储为标准字符串,而不是文本或Blob。我希望另存为blob,但不确定如何保存。
答案 0 :(得分:0)
对于Cloud Datastore库,如Entity concepts文档中所述,任何未索引文本的大小限制为1MB-89字节。另外,如果您将项目描述存储为bytes而不是python 3中的str,则该值将存储为blobl