gpt4 book ai didi

python - 将 folium map 插入 jinja 模板

转载 作者:太空狗 更新时间:2023-10-29 14:15:46 25 4
gpt4 key购买 nike

我想将 follium map 插入到 jinja 模板中。

运行.py

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 的神社模板

{% 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 block 中生成方法 follium_map.save('map.html') 的 map 。

我该怎么做?

最佳答案

您可以使用 folium_map.save('templates/map.html') 保存生成的 html。然后你可以使用 jinja2 来 {% include "map.html"%}。如图所示,生成的 html 包裹在 div 标签中时不会呈现 map ,如果需要封装,请考虑使用 iframescustom folium templates .

文件结构

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

运行.py

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 %}

关于python - 将 folium map 插入 jinja 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37379374/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com