我有一个python脚本,它根据参数生成一个高度图,它将以HTML表单的形式给出。如何在网站上显示生成的图像?我假设表单提交按钮将使用给定的参数命中端点,然后运行计算高度图的脚本,但是如何获得结果图像并将其显示在网站中?此外,计算需要几秒钟,所以我认为我需要某种类型的任务队列,以避免服务器在此期间挂起。如果我说错了请告诉我。
这是一个有点笼统的问题,因为我自己并不知道我需要使用什么来完成这一任务的细节。我在后端使用Flask,但这是一个与框架无关的问题。
发布于 2020-03-27 04:05:41
将图像保存到文件。返回包含元素的网页。SRC应该是指向该文件的URL。
例如,假设您将图像保存到一个名为"temp2.png“的文件中,该文件位于文档根目录下一个名为"scratch”的子目录中。那么IMG元素就是。
如果您在生成引用该图像的网页的同一程序中创建并保存图像,则在保存图像之前,服务器不会返回该页面。如果这只需要几秒钟,服务器就不太可能挂起。许多应用程序都需要这么长的时间来计算结果,所以编写服务器代码的人会确保服务器能够处理这样的延迟。我在Apache、Tomcat和GoServe (一种OS/2服务器)下都这样做过,从来没有遇到过问题。
这种方法的缺点是,您需要安排每个临时文件在到期后删除,例如12小时,或者在您认为用户不再需要它的时候删除。在你返回的网页上,如果图像是用户可能想要保留的严重的东西,你可以警告他们这种情况将会发生。他们可以随时下载。
要删除旧文件,请编写一个脚本来检查它们上次更新的时间,将其与当前日期和时间进行比较,并删除那些比到期时间更早的文件。
您需要一种自动重复运行它的方法。在Unix系统上,如果您有shell访问权限,"cron“命令就是一种方法。在谷歌上搜索"cron job to delete files cron 1小时on web server“可以找到很多关于方法的讨论。
编写任何自动删除脚本时都要非常小心,并对其进行彻底测试,以确保它删除了正确的文件!如果您将过期时间设置为变量,则可以在测试时将其设置为例如1分钟或5分钟,这样您就不需要等待很长时间。
有很多方法可以让你的图片不保存到文件中,但我推荐的是(可能除了文件删除器之外)易于编码和调试。我在许多不同的项目中使用过它。
https://stackoverflow.com/questions/60875763
复制