将叶贴图插入到Jinja模板中 [英] Insert the folium maps into the jinja template
问题描述
我想将follium映射插入到Jinja模板中.
I want to insert follium map into the jinja template.
run.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的Jinja模板
template/index.html - jinja template for 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块中生成方法follium_map.save('map.html')的地图.
But I need map that generate method follium_map.save('map.html') in this div block.
我该怎么做?
推荐答案
您可以使用folium_map.save('templates/map.html')
保存生成的html.然后,您可以使用jinja2到{% include "map.html" %}
.如所示将生成的html包裹在 div 标记中时,它不会呈现地图,如果需要封装,请考虑使用自定义叶子模板.
You could save your generated html with folium_map.save('templates/map.html')
. Then you can use jinja2 to {% include "map.html" %}
. The generated html does not render a map when wrapped in div tags as indicated, if encapsulation is necessary consider using iframes or custom folium templates.
文件结构
myapp
├── run.py
└── templates
├── index.html
└── layout.html
run.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 %}
这篇关于将叶贴图插入到Jinja模板中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!