【问题标题】:Upload jpg with flask and html用烧瓶和html上传jpg
【发布时间】:2021-01-03 21:07:05
【问题描述】:

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

【问题讨论】:

    标签: python html database flask upload


    【解决方案1】:

    如果你使用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 中你可以渲染图像:

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

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

    【讨论】:

    • 我应该为此添加一条路线吗?
    • 取决于您是否有要使用的现有路线以及应用程序的结构。但是,是的,您将需要一个用于表单提交、图像对象验证以及存储图像和图像文件路径的路由
    猜你喜欢
    • 1970-01-01
    • 2013-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-03
    • 2020-08-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多