zoukankan      html  css  js  c++  java
  • 从零开始学Flask框架-006

    重定向和用户会话

    image

    因为刷新页面时浏览器会重新发送之前已经发送过的最后一个请求。如果这个请求是一个包含表单数据的POST 请求,刷新页面后会再次提交表单。

    基于这个原因,最好别让Web 程序把POST 请求作为浏览器发送的最后一个请求。为了解决这个问题,我们可以使用重定向作为POST 请求的响应。

    但这种方法会带来另一个问题。程序处理POST 请求时,使用form.name.data 获取用户输入的名字,可是一旦这个请求结束,数据也就丢失了。于是,这就需要把数据存储在用户会话session中。

    from flask import Flask,render_template
    from flask_bootstrap import Bootstrap
    from flask import request,url_for
    from wtforms import StringField,SubmitField
    from wtforms.validators import DataRequired
    from app.Views.LoginForm import LoginForm
    from flask import redirect,session
    #初始化
    app = Flask(__name__)
    bootstrap = Bootstrap(app)
    app.config['SECRET_KEY'] = 'hard to guess string'
    # 初始化实例
    moment = Moment(app)
    
    #路由,处理URL 和函数之间关系的程序称为路由
    @app.route('/',methods=['GET','POST'])
    #视图函数,函数执行,返回结果
    def index():
        # return render_template('index.html',current_time=datetime.utcnow())
        name = None
        form = LoginForm()
        if form.validate_on_submit():
            session['name'] = form.name.data
            form.name.data = ''
            return redirect(url_for('index'))
        return render_template('index.html',form=form,name=session.get('name'))
    
    #启动服务器
    if __name__ == '__main__':
        app.run()

  • 相关阅读:
    网盘搜索网站汇总
    AutoIt3病毒杀毒攻略(详)
    数据库的逻辑结构设计
    Oracle数据类型
    选择ORACLE数据库字符集
    ETL讲解(很详细!!!)
    Oracle左连接,右连接,全外连接和+号的用法
    Oracle用户创建及权限设置
    内连接、外连接、自然连接
    关系数据库关系代数
  • 原文地址:https://www.cnblogs.com/zhouwp/p/11910445.html
Copyright © 2011-2022 走看看