当前位置: 首页 > 面试题库 >

将Follium Map插入jinja模板

郁景龙
2023-03-14
问题内容

我想将Follium Map插入到Jinja模板中。

运行

from flask import Flask, render_template

app = Flask(__name__)


@app.route('/')
def index():
    start_coords = (46.9540700, 142.7360300)
    folium_map = folium.Map(location=start_coords, zoom_start=14)
    folium_map.save()
    return render_template('index.html', folium_map=folium_map)


    if __name__ == '__main__':

    app.run(debug=True)

template / index.html -Flask的Jinja模板

{% extends "layout.html" %}
{% block title %}Test{% endblock %}
{% block head %}
{{ super() }}
{% endblock %}
{% block body %}
**<div><!--Folium map here-->{{ folium_map }}</div>**
{% endblock %}

我的网站显示当前行:

<folium.folium.Map object at 0x00000000069D5DA0>

但是我需要在此div块中生成方法follium_map.save(’map.html’)的地图。

我怎样才能做到这一点?


问题答案:

你可以使用来保存生成的html folium_map.save('templates/map.html')。然后,你可以使用jinja2来{% include "map.html" %}。如所示将生成的html包裹在div标签中时,它不会呈现地图,如果必须进行封装,请考虑使用iframe或自定义的folium模板。

文件结构

myapp
├── run.py
└── templates
    ├── index.html
    └── layout.html

运行

from flask import Flask, render_template
import folium

app = Flask(__name__)

@app.route('/')
def index():
    start_coords = (46.9540700, 142.7360300)
    folium_map = folium.Map(location=start_coords, zoom_start=14)
    folium_map.save('templates/map.html')
    return render_template('index.html')

if __name__ == '__main__':
    app.run(debug=True)

layout.html

<!DOCTYPE HTML>
<head>
  <title>{% block title %}{% endblock %}</title>
</head>
<body>
  <header>{% block head %}{% endblock %}</header>
  {% block body %}{% endblock %}
</body>
</html>

index.html

{% extends "layout.html" %}
{% block title %} Test {% endblock %}
{% block head %} {{ super() }} {% endblock %}
{% block body %}
    {% include "map.html" %}
{% endblock %}


 类似资料:
  • 问题内容: 我在golang中有一个模板,其中有一个看起来像这样的字符串: 我期望输出是这样的: 但是我看到的是这样的: 我还尝试插入一些JSON,但golang会转义字符并在不应该出现的地方添加类似内容。 如何在golang中插入HTML模板而不发生这种情况? 问题答案: 您应该将变量作为a 而不是作为a 传递: https://play.golang.org/p/QKKpQJ7gIs 如您所见

  • Jinja 是基于python的模板引擎,功能比较类似于于PHP的smarty,J2ee的Freemarker和velocity。 基本用法:   >>> from Jinja2 import Template   >>> template = Template('Hello {{ name }}!')   >>> template.render(name='World')   u'Hello W

  • 问题内容: 我有一个非常基本的模板(basic_template.html),并希望使用使用另一部分模板格式化的数据来填写。basic_template.html可能包含使用部分模板格式化的几件事。 我应该如何在views.py中构建代码? 我这样做的原因是稍后将使用Ajax填充。我这样做对吗? 问题答案: 你可以做: 另一个Django模板在哪里。在这里,你可以放入将用Ajax获得的HTML。

  • 问题内容: 我有一个带一些默认值和url的bone.js模型: 然后,我有此模型的一个实例,然后继续保存它: 现在,我想使用PHP脚本“ save.php”将此模型保存到MySQL数据库中,如下所示: 我尝试阅读许多教程,但无法保存此简单模型。为什么我的代码不起作用?关于如何解决的任何想法? 谢谢 编辑:快速解决方案 在php脚本中,从发送的JSON对象获取信息的正确方法如下: 并存储在数据库中:

  • 问题内容: 我一直在看这段代码已有一段时间了,但我看不出问题出在哪里。我已经阅读了整个StackOverflow,但仍然看不到我的错误在哪里。 错误在第13行中,即thats 。我尝试通过http://www.w3schools.com/php/php_mysql_insert.asp帮助自己,但对我没有太大帮助。 问题答案: 警告: 切勿将 w3schools 用于学习目的。他们的教程中有很多错

  • 问题内容: 我希望能够将当前循环迭代输出到我的模板。 根据文档:http : //wsgiarea.pocoo.org/jinja/docs/loops.html,我正在尝试使用一个loop.counter变量。 我有以下内容: 虽然没有任何输出到我的模板。正确的语法是什么? 问题答案: 循环内部的计数器变量在jinja2中称为 loop.index 。 有关更多信息,请参见http://jinj