在django上使用folium的最佳实践

Ami*_* be 16 python django dictionary leaflet folium

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

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

map_osm.create_map(path='osm.html')
Run Code Online (Sandbox Code Playgroud)

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

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

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

Ole*_*siy 8

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

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