flask 重定向(redirect)和会话(session)

当用户提交表单之后浏览器会在当前页面返回提交的数据。这个时候就需要重新定向一个网页,来处理提交表单之后的内容。这里牵涉到两个关键点,一个是重定向新的网页

(redirect),另一个是在这两个网页之间保存用户的数据(session)。
from flask import Flask, render_template, session, redirect, url_for
@app.route('/', methods=['GET', 'POST'])
def index():
    form = NameForm()
    if form.validate_on_submit():
        session['name'] = form.name.data # 在会话中存储用户提交的数据,session是一个字典
        return redirect(url_for('index')) # 重新定向网页
    return render_template('index.html', form=form, name=session.get('name'))
好的,下面是一个使用会话(session)来传递变量,并进行Web重定向的HTML示例: ```html <!DOCTYPE html> <html> <head> <title>Web重定向示例</title> </head> <body> <h1>欢迎使用Web重定向示例</h1> <form action="redirect.php" method="post"> <label for="username">用户名:</label> <input type="text" id="username" name="username"><br><br> <label for="password">密码:</label> <input type="password" id="password" name="password"><br><br> <button type="submit">登录</button> </form> </body> </html> ``` 在上面的示例中,我们创建了一个包含登录表单的HTML页面。当用户提交表单时,它将重定向到`redirect.php`页面,该页面将检查用户提供的用户名和密码,并根据结果重定向到不同的页面。 下面是`redirect.php`的示例代码: ```php <?php session_start(); // 模拟检查用户提供的用户名和密码 if($_POST['username'] == 'admin' && $_POST['password'] == '123456'){ // 如果用户提供的用户名和密码是正确的,则将变量$is_logged_in设置为true,并将其存储在会话(session)中 $_SESSION['is_logged_in'] = true; // 重定向到受保护的页面 header('Location: protected.php'); exit; } else { // 如果用户提供的用户名和密码是错误的,则将变量$is_logged_in设置为false,并将其存储在会话(session)中 $_SESSION['is_logged_in'] = false; // 重定向到登录失败页面 header('Location: login_failed.php'); exit; } ?> ``` 在上面的示例中,我们使用`session_start()`函数启动会话(session),并检查用户提供的用户名和密码。如果用户名和密码正确,则将`$_SESSION['is_logged_in']`变量设置为`true`,并将用户重定向到受保护的页面`protected.php`。如果用户名和密码错误,则将`$_SESSION['is_logged_in']`变量设置为`false`,并将用户重定向到登录失败页面`login_failed.php`。 在受保护的页面`protected.php`中,我们可以使用以下代码检查用户是否已登录: ```php <?php session_start(); // 检查用户是否已登录 if(!isset($_SESSION['is_logged_in']) || $_SESSION['is_logged_in'] !== true){ // 如果用户未登录,则将其重定向到登录页面 header('Location: login.php'); exit; } ?> <!-- 受保护的内容 --> <!DOCTYPE html> <html> <head> <title>受保护的页面</title> </head> <body> <h1>欢迎访问受保护的页面</h1> <p>只有已登录用户才能看到这个页面。</p> </body> </html> ``` 在上面的示例中,我们使用`session_start()`函数启动会话(session),并使用`$_SESSION['is_logged_in']`变量检查用户是否已登录。如果用户未登录,则将其重定向到登录页面`login.php`。如果用户已登录,则显示受保护的内容。 希望这个示例可以帮助你了解如何使用会话(session)来传递变量,并进行Web重定向
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值