为了账号安全,请及时绑定邮箱和手机立即绑定

在网站上显示计算结果(图像)

在网站上显示计算结果(图像)

BIG阳 2023-10-10 16:44:33
我有一个 python 脚本,它根据参数生成高度图,这些参数将以 HTML 形式给出。如何在网站上显示生成的图像?我认为表单提交按钮将点击给定参数的端点,然后计算高度图的脚本运行,但如何获取结果图像并将其显示在网站中?另外,计算需要几秒钟,所以我想我需要某种类型的任务队列,以免服务器同时挂起。告诉我我是否错了。这是一个有点普遍的问题,因为我自己不知道我需要使用什么来完成这个任务的具体细节。我在后端使用 Flask,但这是一个与框架无关的问题。
查看完整描述

1 回答

?
浮云间

TA贡献1829条经验 获得超4个赞

将图像保存到文件中。返回包含 <IMG SRC=...> 元素的网页。SRC 应该是指向该文件的 URL。

例如,假设您将图像保存到文档根目录下名为“scratch”的子目录中名为“temp2.png”的文件中。那么 IMG 元素将为 <IMG SRC="/scratch/temp2.png"> 。

如果您在生成引用该图像的网页的同一程序中创建并保存该图像,则在保存该图像之前,您的服务器不会返回该页面。如果这只需要几秒钟,服务器就不太可能挂起。许多应用程序需要很长时间才能计算结果,因此对服务器进行编码的人员将确保它可以处理此类延迟。我已经在 Apache、Tomcat 和 GoServe(OS/2 服务器)下完成了此操作,并且从未遇到过问题。

此方法确实有一个缺点,即您需要安排在过期时间(例如 12 小时)后或在您认为用户不再需要它时删除每个临时文件。在您返回的网页上,如果图像是用户可能想要保留的严重内容,您可以警告他们这种情况将会发生。他们随时可以下载。

要删除旧文件,请编写一个脚本来检查它们上次更新的时间,将其与当前日期和时间进行比较,然后删除那些早于到期期限的文件。

您需要一种自动重复运行它的方法。在 Unix 系统上,如果您有 shell 访问权限,“cron”命令是执行此操作的一种方法。谷歌搜索“在网络服务器上删除超过 1 小时的文件的 cron 作业”,发现很多关于方法的讨论。

编写任何自动删除脚本时要非常小心,并彻底测试它以确保它删除正确的文件!如果你把你的有效期设置为一个变量,你可以在测试时将其设置为例如1分钟或5分钟,这样你就不需要等待很长时间。

有多种方法可以将图像流式传输回来而不将其保存到文件中,但我建议的是(可能除了文件删除器)易于编码和调试。我在许多不同的项目中使用过它。


查看完整回答
反对 回复 2023-10-10
  • 1 回答
  • 0 关注
  • 51 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信