从jinja temp恢复值

2024-06-17 11:58:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我想恢复jinja模板中输入的值。首先,我输入一个将重复jinja接口的“x8”值(即,如果“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”


Tags: namebrformappinputreturnrequestsession