flask登陆之后跳转回原先的页面

在使用Flask_login,使用装饰器@login_required时,如果没有登录,会跳转登录页面登陆之后不会返回原来的页面

  • 在登录函数中,redirect更换以下代码

    next_page_url = request.args.get('next')
     # 如果 next_page_url 为空,直接返回首页
     if not next_page_url or url_parse(next_page_url).netloc != '':
         return redirect(next_page_url('首页'))
     else:
         return redirect(next_page_url)
    
  • html中也需要修改,在url_for中增加next=request.args.next

     <form " method="POST" action="{{url_for('auth.login',next=request.args.next)}}">
    
Flask 中,可以通过视图函数的返值来实现页面跳转。具体方法如下: 1. 在 Flask 中,可以使用 render_template 函数来渲染模板,该函数的返值是一个 HTML 页面的字符串,可以直接返给客户端进行渲染。 2. 如果需要跳转到另一个页面,可以使用 redirect 函数来实现。该函数的参数是一个 URL,表示要跳转到的页面的地址。该函数的返值是一个特殊的响应对象,告诉客户端要跳转到指定的页面。 下面是一个示例代码,演示如何在 Flask 中实现页面跳转: ```python from flask import Flask, render_template, redirect, url_for app = Flask(__name__) @app.route('/') def index(): # 渲染 index.html 模板 return render_template('index.html') @app.route('/login', methods=['GET', 'POST']) def login(): if request.method == 'POST': # 处理表单提交的数据 username = request.form['username'] password = request.form['password'] # 验证用户信息 if check_user(username, password): # 用户验证通过,跳转到主页 return redirect(url_for('index')) else: # 用户验证失败,重新显示登录页面 return render_template('login.html', error='用户名或密码错误') else: # 显示登录页面 return render_template('login.html') ``` 在上面的示例中,当用户提交登录表单时,如果用户信息验证通过,则使用 redirect 函数跳转到主页;如果用户信息验证失败,则重新显示登录页面,并在页面中显示错误信息。 在模板中,可以使用 Jinja2 的语法来生成跳转链接,例如: ```html <a href="{{ url_for('login') }}">登录</a> ``` 上面的代码会生成一个指向 `/login` 路径的链接,该链接会跳转到 login 视图函数所对应的页面
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值