首页 > 解决方案 > 用烧瓶和html上传jpg

问题描述

我是一个初学者,我现在正在用flask和html制作一个博客,但它只能发布标题和内容,但我想发布一些图片初始化,所以如果有人知道散文家的发布方式是什么(打印烧瓶应用程序上的图片)并且可以存储在数据库文件中,你能帮帮我吗?因为我被困在这太久了。

标签: pythonhtmldatabaseflaskupload

解决方案


如果你使用flask表单上传文件,那么from flask_wtf.file import FileField可以作为表单字段上传文件。

class UploadImageForm(Form):
    file = FileField(label='File Upload')
    submit = SubmitField('Submit')

在 HTML 方面,您将需要:

<form action="{{ url_for(your.route, **kwargs) }}" method="POST" enctype = "multipart/form-data">
  {{ form.name_of_file_field }}
  {{ form.submit }} <!-- Or an input tag -->
</form>

然后,提交表单时将调用的路由必须需要 POST 方法。在开发中,您可以将文件本地存储在静态文件夹中,但我建议在将应用程序放在服务器上之前将它们存储在远程存储中。

文件存储并上传后,您可以在 html 中使用以下命令渲染图像:

<img class="image" src="{{ url_for('static', filename=image_file_path) }}">其中 image_file_path 是图像的路径。此路径应存储为环境变量。图像文件名可以作为字符串存储在您的模型数据列之一中的数据库中。我建议创建 UUID 作为图像文件名,这样您就不会依赖于用户的上传(即,如果文件名使用不同的语言)。

Miguel Grinberg 有一个很棒的教程,它将涵盖所有这些以及更多内容,包括使用图像对象、图像验证和安全性:https ://blog.miguelgrinberg.com/post/handling-file-uploads-with-flask


推荐阅读