• 用python+vue实现一个计算页面


    要实现一个计算器页面,我们需要分别创建前端和后端部分。前端使用 Vue.js 框架,后端使用 Python 的 Flask 框架。

    安装依赖

    pip install flask
    npm install -g vue
    npm install -g @vue/cli
    vue create calculator-frontend
    cd calculator-frontend
    npm run serve
    

    在 calculator-frontend 目录下创建一个名为 src 的文件夹,并在其中创建一个名为 Calculator.vue 的文件。将以下代码粘贴到该文件中:

    <template>
      <div id="app">
        <h1>简易计算器h1>
        <input type="text" v-model="expression" />
        <button @click="calculate">计算button>
        <p>结果: {{ result }}p>
      div>
    template>
    
    <script>
    export default {
      data() {
        return {
          expression: "",
          result: "",
        };
      },
      methods: {
        calculate() {
          this.$axios.post("http://localhost:5000/calculate", {
            expression: this.expression,
          }).then((response) => {
            this.result = response.data.result;
          });
        },
      },
    };
    script>
    
    

    在项目根目录下创建一个名为 backend.py 的文件,将以下代码粘贴到该文件中:

    from flask import Flask, request, jsonify
    import ast
    import operator
    
    app = Flask(__name__)
    
    @app.route("/calculate", methods=["POST"])
    def calculate():
        expression = request.json["expression"]
        try:
            result = eval_expr(expression)
            return jsonify({"result": result})
        except Exception as e:
            return jsonify({"error": str(e)})
    
    def eval_expr(expr):
        ops = {ast.Add: operator.add, ast.Sub: operator.sub, ast.Mult: operator.mul, ast.Div: operator.truediv}
        node = ast.parse(expr, mode="eval")
    
        def _eval(node):
            if isinstance(node, ast.Expression):
                return _eval(node.body)
            elif isinstance(node, ast.Num):
                return node.n
            elif isinstance(node, ast.BinOp):
                left = _eval(node.left)
                right = _eval(node.right)
                return ops[type(node.op)](left, right)
            else:
                raise TypeError(node)
    
        return _eval(node.body)
    
    if __name__ == "__main__":
        app.run(debug=True)
    
    

    运行后端服务器

    python backend.py
    

    访问 http://localhost:8080,你将看到一个简单的计算器页面。在输入框中输入表达式,然后点击“计算”按钮,结果将显示在页面上。

  • 相关阅读:
    Windows电脑安装Python结合内网穿透轻松搭建可公网访问私有网盘
    图解网络(四)——IP篇
    【Java 简洁初始化类】匿名内部类和实例初始化块
    【Win10】开机启动输入密码——免回车
    mybatis.spring.MyBatisSystemException【bug】
    云原生题目整理(待更新)
    C语言笔记之指针(二)
    为什么浏览器打印后会有一个undefined
    第六十二天 牛客62场小白月赛
    Maxwell 是什么?
  • 原文地址:https://blog.csdn.net/weixin_46035550/article/details/139624804