Flask请求-响应循环

Flask请求-响应循环

要想让视图函数能够请求对象,一种直接了当的方式是将其作为参数闯入试图函数,不过这会导致应用中的每个视图函数,不过这会导致每个视图函数都多出一个参数。除了访问请求对象,如果视图函数在处理请求时还要访问其他对象,情况会变得更糟。

为了避免大量可有可无的参数把视图函数弄的一团糟,Flask使用上下文

from flask import Flask

@app.route("/")
def index():
    user_agent = request.header.get("User-Agent")
    return '<p>Your browser is {} </p>'.format(user-agent)
注意,在这个视图函数中我们把request当作全局变量使用。事实上,request不可能是全局变量。试想,在多个线程处理不同客户端发送的不同请求时,每个线程看到的request对象必然不同。Flask使用上下文让特定的变量在一个线程中全局可访问,与此同时却不会干扰其他的线程。
变量名 上下文 说明
current_app 应用上下文 当前应用的应用实例
g 应用上下文 处理请求时用作临时存储的对象,每次请求都会重设这个变量
request 请求上下文 请求对象,封装了客户端发出的HTTP请求中的内容
session 请求上下文 用户会话,值为一个字典,存储请求之间需要记住的值

没激活应用上下文之前就调用curren_app.name会导致错误,但推送完上下文就可以调用了。值的注意的是,获取应用上下文的方法是在应用实例上调用app.app_context()

原文地址:https://www.cnblogs.com/barry-cbt/p/12416621.html

时间: 2024-07-31 02:42:14

Flask请求-响应循环的相关文章

Flask框架(二)—— 反向解析、配置信息、路由系统、模板、请求响应、闪现、请求扩展、session

目录 反向解析.配置信息.路由系统.模板.请求响应.闪现.session 一.反向解析 1.什么是反向解析 2.使用 二.配置信息 1.默认配置 2.修改方法一--点的方式修改 3.修改方法二--利用字典修改 4.修改方法三--通过py文件修改(常用) 5.修改方法四--利用类或类的路径修改(常用) 6.其他方法修改配置 三.路由系统 1.基本写法 2.转换器 3.路由本质 4.CBV 5.自定义支持正则 四.模板 五.请求与响应 六.session 七.闪现(flash) 1.使用 2.示例

BizTalk开发系列(三十)单向端口实现请求-响应

BizTalk本质上是异步的消息处理引擎.BizTalk的请求与响应模式是基于异步之上的同步消息交换.消息引擎通过消息的扩展架构链接许 多异步消息,消息的相关集关联请求与响应消息.例如,客户端发送一个SOAP请求到BizTalk SOAP适配器.连接该Web Service的BizTalk Orchestration接收处理消息.并返回一个SOAP响应消息.对于客户端程序来说是一个同步的SOAP请求.但在引擎内部则是通过并联交换许多 的异步消息来实现. 以下是请求-响应模式中的五个架构属性: B

Flask 请求扩展

Flask 请求扩展 from flask import Flask,request app = Flask(__name__) before_request # 用before_request装饰的函数是执行响应函数之前执行, # 如果有多个before_request他会自上而下按照顺序执行 # 如果before_request有返回值,那后面的before_request都不会执行,且响应函数也不会执行 # 其有没有返回值都不会影响after_request的执行 @app.before_

【报文】理解HTTP协议的Request/Response(请求响应)模型

[报文]理解HTTP协议的Request/Response(请求响应)模型 系列目录 [简介]"请求/响应"模型 http://www.cnblogs.com/engraver-lxw/p/7550514.html [原理]理解HTTP协议的Request/Response(请求响应)模型 http://www.cnblogs.com/engraver-lxw/p/7550691.html [报文]理解HTTP协议的Request/Response(请求响应)模型--当前 http:/

iOS开发工具-如何使用网络封包分析工具Charles,通过配置proxy对http、https、tcp、udp 等协议的请求响应过程交互信息进行分析、判断、解决我们移动开发中的遇到的各种实际问题。

通过该方式同时也可以实现底层网络库AFNetworking及ASIHTTPRequest的代理设置.达到我们开发时的抓包分析及 IP地址指定访问开发/仿真任一台提供API接口服务器的目的. 首先下载Charles并配置我们的开发机iPhone终端的代理IP及Charles配置一下, 步骤如下: 1).取得mac本机的IP地址:如下图中的:192.168.1.106 如图: 2).通过下载的Charles来配置我们的代理服务器: 如下图: 将我们的开发机iphone终端代理设置成我们mac本的ip

Ajax的基本请求/响应模型

一.Ajax工作核心 Ajax的核心是JavaScript对象XMLHttpRequest(简称XHR).它是一种支持异步请求的技术.可以通过使用XHR对象向服务器提出请求并处理响应,而不阻塞用户. Ajax可以完成的功能有: 在不重新加载页面的情况下更新网页 在页面已加载后从服务器请求数据 在页面已加载后从服务器接收数据 在后台向服务器发送数据 1.1 Ajax简介 Ajax可以说 是目前最流行的 WEB 技术,它采用客户端脚本与 Web 服务器交换数据,也就是说,客户端的表单请求不是直接给

web请求响应

转载自:SanMaoSpace 1.Web开发的定义首先看看微软对Web开发的定义:Web开发是一个指代网页或网站编写过程的广义术语.网页使用 HTML.CSS 和 JavaScript编写.这些页面可能是类似于文档的简单文本和图形.页面也可以是交互式的,或显示变化的信息.编写交互式服务器页面略微复杂一些,但却可以实现更丰富的网站.如今的大多数页面都是交互式的,并提供了购物车.动态可视化甚至复杂的社交网络等现代在线服务. 通俗的说,Web开发就是我们说的做网站.它分为网页部分和逻辑部分也就是我们

基于请求响应的简单介绍

Http请求响应过程: Http是基于TCP/IP之上的协议. 基本流程: 浏览器      -------请求行/请求头/请求体---------> Web服务器 --> 应用代码(servlet/JSP/.html) <----- 响应状态/响应头/响应体----- 请求行: GET/POST URL?querystring请求头: Content-Length/Connection/User-Agent/Accept-Language/Referer/Cookie/Host...请

http请求 响应 详细过程

httpurlconnection 1. 配置connection对象2. connect() [根据配置设置请求头 outputStream 字符串流] 存储在内存缓冲区3. outputStream关闭时 生成http正文4. 调用getInputStream时 发送http请求 返回InputStream 从而读取此次http请求的返回信息 System.setProperty("sun.net.client.defaultConnectTimeout", "30000