在django上使用folium的最佳实践

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在django上使用folium的最佳实践相关的知识,希望对你有一定的参考价值。

我正在用django构建一个应用程序,它将显示最高投票项目的地图。

我不是一个经验丰富的网络开发,我想知道在哪里,何时何地应该建立他们的地图。 (这一行例如 - >)

map_osm.create_map(path='osm.html')

现在我放在我的views.py中,并且每次用户查看它时都在构建地图,问题是 - 它不会为服务器创建太多的开销计算吗?

我考虑过每次x票更新它,或者保留一个管理它的模型。

在这种情况下最好的做法是什么?

答案

艾米特。至于用户的folium和构建地图,是的,当许多用户想要计算时,它可能会使服务器变得艰难。有解决方案:

  1. 用Redis或Memcached缓存(Django为它准备了电池)。此时,如果坐标相同,您可以将缓存生存期设置为几秒到几个小时。 Django提供视图缓存,模板缓存或其他。
  2. 保存映射到db的结果,因此如果用户计算机与昨天的坐标相同 - Django将从db获取结果并更快地显示到模板。
  3. 如果没有通过您的要求 - 只需让django更快,关闭未使用的中间件,使用gunicorn uwsgi运行和部署。在Web服务器上找到更多RAM和CPU核心(部署时)。
  4. 您可以尝试对项目进行概要分析,这样您就可以找到项目中计算部分最多的部分。当你找到 - 让它更快。
另一答案

缓存是最好的方法,但由于您不是经验丰富的开发人员,我将为您提供替代解决方案。

每次用户访问您网站的该部分时,您似乎都在重新计算地图。一种解决方案是直接链接到html文件,并且每隔30分钟(或者您需要的任何内容)通过CRON任务或Python计时器更新文件。这样,您每半小时只能为所有用户计算一次。

以上是关于在django上使用folium的最佳实践的主要内容,如果未能解决你的问题,请参考以下文章

在android中使用底部导航的最佳实践:活动与片段

React + Django 的最佳安全实践

Django管理图标和图像

在片段和活动之间进行通信 - 最佳实践

最佳实践:单个 Amazon EC2 实例上的多个 django 应用程序

更新片段参数的最佳实践?