如何使用Flask在HTML页面之间传递变量

时间:2018-08-07 12:33:51

标签: python html flask

我是使用Flask的新手,我只是试图在两个网页之间传递变量。第一个是一种简单的形式,可以接受数字,第二个页面仅显示输入的内容。

表单页面的HTML:

<!doctype html>
<html>
<body>
    <form action ="{{ url_for('return_form', glon="glon") }}" method="post">
            Galactic Longitude: <input type="text" name="glon">
        <button type="submit">Submit</button>
    </form>
</body>
</html> 

显示页面的HTML:

<!doctype html>
<body>

<p> {{ glon }} </p>

</body>
</html>

Flask脚本当前如下所示:

from flask import Flask
from flask import render_template, url_for, request, redirect
app = Flask(__name__)

@app.route('/')
def index():
    return render_template('index.html')

@app.route('/form/', methods = ['GET', 'POST'])
def form():
    if request.method == 'POST':
        glon = request.form['glon']
        #glat = request.form['glat']

        return redirect(url_for('return_form', glon=glon))

    return render_template('form.html')

@app.route('/return_form/<glon>', methods = ['GET', 'POST'])
def return_form(glon):
    return render_template('return_form.html', glon=glon)

if __name__ == '__main__':
    app.run()

此刻,第二页仅显示“ glon”,而不是传递给表单的数字。

我只希望变量显示在第二页上,并最终在return_form函数中使用它。

1 个答案:

答案 0 :(得分:1)

所以我没有采用您的方法。以下是我所做的,我对代码做了一些更改。希望这能解决您的问题。

main.py

from flask import Flask
from flask import render_template, url_for, request, redirect
app = Flask(__name__)

@app.route('/')
def index():
    return render_template('index.html')

@app.route('/form', methods = ['GET', 'POST'])
def form():
    if request.method == 'POST':
        glon = request.form['glon']
        return render_template('display.html', glon=glon)

# @app.route('/return_form/<glon>', methods = ['GET', 'POST'])
# def return_form(glon):
#     return render_template('return_form.html', glon=glon)

if __name__ == '__main__':
    app.run()

index.html

<html>
<body>
    <form action ="{{ url_for('form') }}" method="post">
            Galactic Longitude: <input type="text" name="glon">
        <button type="submit">Submit</button>
    </form>
</body>
</html>

display.html

<!doctype html>
<body>

<p> {{ glon }} </p>

</body>
</html>