Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过Jinja2 render_template()将python字符串列表导入javascript变量_Python_Flask_Jinja2 - Fatal编程技术网

通过Jinja2 render_template()将python字符串列表导入javascript变量

通过Jinja2 render_template()将python字符串列表导入javascript变量,python,flask,jinja2,Python,Flask,Jinja2,我想通过调用(Jinja2)render\u template('manage\u stations.HTML',stations=stations) (javascript变量应该是一个站名数组,作为用于自动完成功能的字符串): 在我的python代码中,列表站[]的条目类型为sqlite3.Row。我只需要['station_name']内容: stations[0]['station_name'] = 'station1name' stations[1]['station_name'] =

我想通过调用(Jinja2)
render\u template('manage\u stations.HTML',stations=stations)
(javascript变量应该是一个站名数组,作为用于自动完成功能的字符串):

在我的python代码中,列表站[]的条目类型为sqlite3.Row。我只需要['station_name']内容:

stations[0]['station_name'] = 'station1name'
stations[1]['station_name'] = 'station2name' 
stations[2]['station_name'] = 'station3name' 
等等

我的manage_stations.html文件如下:

<!DOCTYPE html>
<html lang="de">
 <head>
  <script>
     var station_names = {{ [ x['station_name'] for x in stations]|tojson }} ;
  </script>
 </head>
<body></body>
</html>
然后将其作为附加参数传递给render_template函数。
render\u模板('manage\u stations.html',stations=stations,station\u name\u string=l)
但是只传递一个变量站(包含所有必要信息)并以某种方式进行格式化不是更好吗

谢谢大家!

编辑: 我刚刚发现Jinja2中不支持列表理解-是否仍有可能在不添加第二个参数的情况下获取变量集?

…解决此问题的一个(不是理想的)方法是真正添加一个新参数stations\u list,并添加以下内容:

 station_list = [ x['station_name'] for x in stations]  
  

<script>
var station_names =   {{ station_list|safe }}  ;
</script>
station\u list=[x['station\u name']表示站点中的x]
var station_names={{station_list}安全};
但是,我仍然没有被标准化,因为我传递了两个具有相同信息的参数,只是因为无法进行格式化

l = "'" + "','".join(s['station_name'].replace("'", r"\'") for s in stations) + "'"
 station_list = [ x['station_name'] for x in stations]  
  

<script>
var station_names =   {{ station_list|safe }}  ;
</script>