美文网首页
Flask从基础到实战(三)

Flask从基础到实战(三)

作者: 心藏_有你 | 来源:发表于2018-05-26 11:07 被阅读0次

        在Flask从基础到实战(二)说到了从浏览器传递参数给视图函数的方式,这次继续往下说。

        正则路由匹配

        如果对浏览器传入的参数,有条件限制的话,这时候就需要用到转换器

        需求:要求传递过来的参数必须是数字类型的该怎么做呢?代码如下:

    运行请求的结果,当输入的是数字的时候

    当输入的是字符串的时候

    这个时候,由于正则路由匹配的问题,就找不到我们自己定义的视图函数

    flask中定义的正则路由有一下几种

    如果现在的需求是对传入的参数不仅仅是数字类型的,还需要位数为三位数的,这个时候,系统的这些转换器则就不能满足条件了,这个时候就需要我们自己定义转换器,如下:

    执行结果如下

    r

    如果输入的数字为四位数字的话,则就访问不到我们定义的视图函数了

    异常的抛出以及捕获

    使用abort(状态码)(说明该处状态码为HTTP标准状态码)函数来抛出一个异常,使用errorhandler(状态码)装饰器来进行异常的捕获例子代码如下:

    运行结果如下:

    请求钩子

    执行的结果为:

    获取请求参数

    状态保持

    因为 http 是一种无状态协议,浏览器请求服务器是无状态的。

    无状态:指一次用户请求时,浏览器、服务器无法知道之前这个用户做过什么,每次请求都是一次新的请求。

    无状态原因:浏览器与服务器是使用 socket 套接字进行通信的,服务器将请求结果返回给浏览器之后,会关闭当前的 socket 连接,而且服务器也会在处理页面完毕之后销毁页面对象。

    有时需要保持下来用户浏览的状态,比如用户是否登录过,浏览过哪些商品等

    实现状态保持主要有两种方式:

        在客户端存储信息使用Cookie

        在服务器端存储信息使用Session

    cookie

    设置cookie首先需要创建一个response对象,通过make_response()方法即可,导包

    from flask import make_response

    运行结果如下

    session

    对于敏感、重要的信息,建议要存储在服务器端,不能存储在浏览器中,如用户名、余额、等级、验证码等信息

    在服务器端进行状态保持的方案就是Session

    session依赖cookie存在

    首先导包

    from flask import session

    运行后发现出现如下错误,提示需要配置一个secret_key

    做如下配置即可:

    运行结果

    相关文章

      网友评论

          本文标题:Flask从基础到实战(三)

          本文链接:https://www.haomeiwen.com/subject/oklfjftx.html