Python 将列表传递给Jinja2';s render_模板()
我有一个名为Python 将列表传递给Jinja2';s render_模板(),python,flask,jinja2,Python,Flask,Jinja2,我有一个名为geolist的列表,就在我所有import语句的下面,后面是一系列函数,其中一个函数将元素附加到geolist 用于填充地理列表的函数 def reverseDNS(IPlist): list(set(IPlist)) print(IPlist) #geolist = [] --- Removed for ip in IPlist: url = "http://ipinfo.io/" + ip + "/json" p
geolist
的列表,就在我所有import
语句的下面,后面是一系列函数,其中一个函数将元素附加到geolist
用于填充地理列表的函数
def reverseDNS(IPlist):
list(set(IPlist))
print(IPlist)
#geolist = [] --- Removed
for ip in IPlist:
url = "http://ipinfo.io/" + ip + "/json"
print(url)
info = str(urllib.urlopen(url).read())
data = json.loads(info)
if (("bogon" in data) == False):
geolist.append(data['loc'])
这是我用来显示geolist内容的测试方法(在末尾提供)(测试目的是检查是否为空)
Python(先试用)
然后试了这个
HTML
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
</head>
<body>
<h1>Tester</h1>
{% for n in list %}
<p>{{ n }}</p>
{% endfor %}
</body>
</html>
试验
测试员
{列表%中n的%s}
{{n}}
{%endfor%}
我想将(?geolist
的内容作为render\u template()
的参数传递并显示它
谢谢。您如何执行此函数,该函数将元素附加到地理列表中
——可能您没有执行它。显示更多代码。@furas我使用一个以列表为参数的函数。我将代码附加到posthow/where you executereverseDNS
?geolist
是局部变量,它只存在于reverseDNS
中,因此您不能在任何其他函数中使用它。您没有使用return
来分配外部/全局变量,也没有使用global
来使用外部geolist
@furas我有一个名为main的函数,它调用reverseDNS
。它是traceroute的一个实现。我要把那个密码写上吗?
@app.route("/")
def template_test():
geo_list = []
for geo in geolist:
geo_list.append(geo)
return render_template('template.html', list=geo_list)
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
</head>
<body>
<h1>Tester</h1>
{% for n in list %}
<p>{{ n }}</p>
{% endfor %}
</body>
</html>