zoukankan      html  css  js  c++  java
  • flask的Request对象

    一、基本原理

    • flask的Request是flask接受request请求的关键对象,它将request请求解析并生成了Request对象,方便后台程序处理
    • request对象在flask是全局对象,在全局可用的优点是对于我们操作起来是非常方便的,随时在处理模块中import flask.request就行了
    • 虽然为全局对象却是线程安全的(因为用到了上下文本地化)
    1. 线程安全问题都是由全局变量和静态变量引起的
    2. 若是每个线程对于全局变量,静态变量只有读操作而没有写操作,那么这个变量是线程安全的,若多个线程同时对变量进行写操作,必须要考虑线程同步
    3. 对一个线程,上下文(context)指的是装有这个线程的容器,其中包含了各种变量和信息,以便于切换回这个线程的时候能够恢复之前的状态
    4. 因此flask中request对象被设计成上下文本地化的线程,仅仅在当前的上下文中是全局变量(相对全局),因此是线程安全
    • 总结flask的request对象工作模式:接收到一个request,生成一个线程来处理它,并生成这个线程的上下文来存储线程中的变量,数据,参数等等,此时request对象是这个线程上下文内的全局变量

       (附上自己的手绘图来理解)

     

    二、request对象的方法和属性

    args

    解析后的form提交的参数

    files

    为一个dict,解析后的form上传的文件

    host

     

    path

     

    environ

     

    headers

     

    data

    body元数据

    json

    json的body数据

    cookies

    指向cookies的链接

  • 相关阅读:
    第五章 项目范围管理
    一位华为IT总监的12大职场经验谈
    接到面试通知后该做什么
    经验借鉴:外包失败三条血泪经验分享
    项目范围管理收集需求
    绝对不能对老板说的十句傻话
    项目整合实施整体变更控制
    项目整合结束项目或阶段
    9招助你夺取更高职位
    IT人写好简历的原则与方法
  • 原文地址:https://www.cnblogs.com/DylanHooz/p/6389031.html
Copyright © 2011-2022 走看看