python - 用烧瓶和html上传jpg
问题描述
我是一个初学者,我现在正在用flask和html制作一个博客,但它只能发布标题和内容,但我想发布一些图片初始化,所以如果有人知道散文家的发布方式是什么(打印烧瓶应用程序上的图片)并且可以存储在数据库文件中,你能帮帮我吗?因为我被困在这太久了。
解决方案
如果你使用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
推荐阅读
- javascript - ./src/firebase.js 未找到模块:无法解析 'D:\Coding\fb-clone\src' 中的 'firebase'
- powershell - 如何从 PowerShell 脚本打开文件夹浏览器对话框?
- apache-spark - Spark Sort Merge Join 是否涉及洗牌阶段?
- excel - 日期格式挑战
- typescript - React Native Firebase 应用程序中的 GoogleSignIn 不起作用
- sql - 表规则中的规则 ID,其中 item 和 dc 被停用
- r - 如何计算按列名分组的数据框/矩阵中的平均值和标准差
- .htaccess - 将链接转发到同一链接但在子域上的最佳方法是什么?
- azure-functions - 添加 Azure 存储 Blob 容器输入绑定 Azure Functions Java
- c# - 静态类中的受保护结构