在制作flask的小型web的时候遇到一个问题,怎样在前端展示我需要展示的数据?
有一种方法是js代码加载本地json文件,然后把它转化成js数组的格式。不过查过N篇js加载本地json文件的例子,然而并没有一篇有用,原因是flask的界面进过了render_template()的映射,已经在服务器上了,不能再加载本地路径。而且根据MVC分层的话,在前端界面只应该有展示数据的功能,不应该有读取数据这种复杂操作。数据应该从后台送往html界面。
第二种方法:通过render_template传递数据。
示例如下:
后端代码:
@app.route('/boke')
def boke():
str = "hello"
li = [1,2,3,4]
return render_template('boke.html',str=str,li=li)
这里在render_template()函数里面传了两个参数,这个参数是可以任意多个,且可以任意命名的,因为这个函数的原型是一个可变参数。然后在html端通过{{ value }}来访问变量,{{% for i in list%}}来执行py语句,这就是jinja的模板的功能。
如下html界面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{{ str }}<br>
{{ li }}
</body>
</html>
可以看到我在body中展示了两个变量,结果如下:
当然这是最简单的一个例子。一般大数据量的话,最好存储在json格式中,不过在前后端传json格式可能会有问题,比如出现:
''此类符号,解决方案如下:
扫描二维码关注公众号,回复:
2303645 查看本文章