首页 > 解决方案 > 从 jinja 模板中恢复值

问题描述

我想恢复在我的 jinja 模板中输入的值。首先,我输入一个“x8”值,它将重复 jinja 接口(即如果“x8”=2,那么接口将有 2 个请求。这是我的 .py 文件:

import os
from flask import Flask, request, session, redirect, render_template


    app = Flask(__name__) 
    app.secret_key = "hello"

    @app.route('/begin', methods=['GET', 'POST']) 
    def form():
        if request.method == 'POST':
          x8 = request.form['x8']
          session ['x8'] = x8

          return redirect("http://127.0.0.1:5000/go", code=302)

        return '''<form method="POST">

            Input x8:    <input type="text" name="x8"><br>

            <input type="submit" value="Input"><br>

            </form>'''

    @app.route('/go', methods=['GET', 'POST'])
    def what():
        x8 = int(session['x8'])
        EFT = int()

        if request.method == 'POST':
            y1 = request.form['y1']
            y2 = request.form['y2']

            EFT = int(y1) + int(y2)

            session ['EFT'] = EFT
            return redirect("http://127.0.0.1:5000/resi", code=302)

        return render_template('stack.html', x8=x8)

    @app.route('/resi')
    def res():
        EFT = int(session['EFT'])
        return str(EFT)

    if __name__ == '__main__':
      app.config['SESSION_TYPE'] = 'filesystem'
      app.run(debug=True, port=5000)

所以,问题是它只保存第一个请求,这里是 html:

<body>
  <form action="" method="POST">
    {% for i in range(x8) %}
      Input y1: <br>
      <input type="text" value="{{ contact }}" name="y1"><br>
      Input y2: <br>
      <input type="text" value="{{ contact }}" name="y2"><br>
      <br>
    {% endfor%}
    <input type="submit" value="Input"><br>
   </form>
</body>

如何保存总“y1”和总“y2”以获得最终结果“EFT”

标签: pythonpython-3.xfor-loopflaskjinja2

解决方案


推荐阅读