关于使用Python的web框架Flask,再结合Vue时,插值表达式{{}}无效的问题

最近在使用Pyhon写一些爬虫的时候,因为是临时作为服务使用的,就选了Flask一个轻量级的 Python web 框架,然后前端使用vue编写了一个单页。
这是项目结构:
在这里插入图片描述
就一个home页面,引入的自己本地的Vue.js文件,app.py是项目的启动文件。
先看Python代码:总的来说,这段代码定义了一个非常简单的 Flask web 应用,当用户访问网站的主页时,它会返回名为 ‘home.html’ 的模板文件的内容。

from flask import Flask, render_template  

app = Flask(__name__)  
  
@app.route('/')  
def home():  
    return render_template('home.html');    
    
if __name__ == '__main__':  
    app.run(debug=True)

home.html文件代码:

<!DOCTYPE html>
<html>
<head>
    <title>Home Page</title>
    <script type="text/javascript" src="./../static/vue.js"></script>   
</head>

<body>
    <div id="app">
        <div>Hello:{{helloWord}}</div>
    </div>
    <script>
        new Vue({
            el: '#app',  
            data: {
                helloWord: '张三',
            },
            mounted(){
                console.log('========================');
            },
               
            methods: {
            }
        })
    </script>
</body>
</html>

首先这段Vue代码是没有问题的,可以看到input输入框绑定的placeholder属性可以正常显示,但是Hello:后面却没有展示
在这里插入图片描述
检查页面元素也是没有内容的,控制台并没有报错
在这里插入图片描述
这是因为 Flask 会尝试渲染模板中的变量,而 Vue 也使用类似的语法(双大括号 {{ }})来绑定数据。这会导致 Flask 试图渲染 Vue 的绑定表达式,从而破坏了 Vue 的代码。可以改一下delimiters属性,将vue的插值表达式的分隔符从默认的 {{ }} 改为 [[ ]]

<div id="app">  
  <p>[[ helloWord]]</p>  
</div>
<script>
new Vue({  
  el: '#app',  
  delimiters: ['[[', ']]'],  
  data: {  
    helloWord: '张三'  
  }  
});
</script>

即可正常展示啦
在这里插入图片描述
注意:在实际生产环境中,通常不会使用 Flask 的内置开发服务器,而是会选择一个更强大、更安全的服务器,如 GunicornWSGI

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值