首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在烧瓶中重定向

在烧瓶中重定向
EN

Stack Overflow用户
提问于 2020-09-13 06:25:20
回答 1查看 40关注 0票数 0

我不确定,为什么输入用户名后页面会被重定向到/index路由

代码语言:javascript
复制
from flask import Flask, session, redirect, url_for, request
from markupsafe import escape

app = Flask(__name__)

# Set the secret key to some random bytes. Keep this really secret!
app.secret_key = b'_5#y2L"F4Q8z\n\xec]/'

@app.route('/index')
def index():
    if 'username' in session:
        return 'Logged in as %s' % escape(session['username'])
    return 'You are not logged in'

@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        session['username'] = request.form['username']
        return redirect(url_for('index'))
    return '''
        <form method="post">
            <p><input type=text name=username>
            <p><input type=submit value=Login>
        </form>
    '''

@app.route('/logout')
def logout():
    # remove the username from the session if it's there
    session.pop('username', None)
    return redirect(url_for('index'))

代码来自flask的快速入门文档。

EN

回答 1

Stack Overflow用户

发布于 2020-09-13 20:20:27

实际上,@monsieuralfonse64已经给出了答案,所以我只是总结一下。

由于您的表单设置了method="post"属性:

代码语言:javascript
复制
@app.route('/login', methods=['GET', 'POST'])
def login():
    # ...
    return '''
        <form method="post">
            <p><input type=text name=username>
            <p><input type=submit value=Login>
        </form>
    '''

当您提交表单时,浏览器会将数据作为POST方法发送,这就是为什么它会触发if request.method == 'POST':语句,然后执行return redirect(url_for('index')),最后将页面重定向到/index。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63865456

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档