【PythonWeb开发】Flask四大内置对象

        在Flask中,current_app、g、request、session是非常关键的内置对象,它们分别承担着不同的作用,并广泛应用于Web开发中的多个环节。

(1)current_app

        它是一个代表当前Flask应用实例的代理对象,允许开发者在不同的模块和函数中访问应用实例的配置和扩展等。current_app主要用于访问应用配置和在应用上下文之外的地方使用应用级别的资源。例如,可以在应用的配置中使用current_app.config['KEY']来获取或设置配置值。

from flask import Flask, current_app

app = Flask(__name__)

@app.route('/')
def index():
    config_value = current_app.config['KEY']
    return f"Config value: {config_value}"

if __name__ == '__main__':
    app.run()

(2)g

        g全称就是global,这是一个特定于应用上下文的全局变量,常用于在同一请求处理过程中的不同函数间传递数据。g对象的生命周期与请求处理期间的生命周期相同,因此它通常被用来在视图函数之间临时存储数据,比如数据库连接或用户信息。

from flask import Flask, g

app = Flask(__name__)

@app.before_request
def before_request():
    g.user = 'John Doe'  # 在每个请求开始时设置g.user

@app.route('/')
def index():
    user = g.user
    return f"User : {user }"  # 在视图函数中使用g.user

if __name__ == '__main__':
    app.run()

(3)request

        代表了客户端发出的HTTP请求,包含了请求的所有相关数据,如方法、路径、参数、数据和头信息等。通过request对象,可以获取诸如请求参数(例如 request.args)、表单数据(例如 request.form)以及查询字符串(例如 request.query_string)等信息。由于其封装了请求的全部信息,因此是处理Web请求不可或缺的部分

from flask import Flask, request

app = Flask(__name__)

@app.route('/')
def index():
    method = request.method
    args = request.args
    return f"Method: {method}, Args: {args}"

if __name__ == '__main__':
    app.run()

(4)session

        该对象用于管理用户的会话信息,通常用来存储需要在不同请求间保持的信息,例如用户登录状态。默认情况下,session数据存储在客户端的Cookie中,但也可以配置成其他存储方式。通过session对象的方法,例如session['key'] = value来存储数据,使用value = session['key']来读取数据,这样可以实现用户状态的跟踪和管理。

from flask import Flask, session

app = Flask(__name__)
app.secret_key = 'your_secret_key'

@app.route('/set_session')
def set_session():
    session['username'] = 'John'
    return "Session set."

@app.route('/get_session')
def get_session():
    username = session.get('username', 'Not set')
    return f"Username: {username}"

if __name__ == '__main__':
    app.run()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/744829.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[论文笔记]Mixture-of-Agents Enhances Large Language Model Capabilities

引言 今天带来一篇多智能体的论文笔记,Mixture-of-Agents Enhances Large Language Model Capabilities。 随着LLMs数量的增加,如何利用多个LLMs的集体专业知识是一个令人兴奋的开放方向。为了实现这个目标,作者提出了一种新的方法&#xf…

【Mac】iTerm for mac(终端工具)软件介绍及安装教程

软件介绍 iTerm 是 macOS 上一个非常受欢迎的终端仿真器,提供了比默认的 Terminal 应用更多的功能和定制选项。它是一款开源软件,主要用于命令行界面的操作和开发者工具。 主要特点和功能: 分页和标签: iTerm 允许用户在单个窗…

centOS 7安装gitlab

主要参考: CentOS-7 下 GitLab 安装部署教程_centos7 安装gitlab-CSDN博客 但是由于我本身服务器配置很小(2核2G),所以运行的时候报错: execute[clear the gitlab-rails cache] (gitlab::gitlab-rails line 561) had an error: Mixlib::Sh…

vue3使用v-html实现文本关键词变色

首先看应用场景 这有一段文本内容,是项目的简介,想要实现将文本中的关键词进行变色处理 有如下关键词 实现思路 遍历文本内容,找到关键词,并使用某种方法更改其字体样式。经过搜寻资料决定采用v-html实现,但是v-h…

哈夫曼编码

一.哈夫曼树 哈夫曼树(Huffman Tree)是一种用于数据压缩的二叉树。它基于字符出现的频率构建,使得高频字符使用较短的编码,低频字符使用较长的编码,从而实现数据压缩。哈夫曼树也被称为最优二叉树或哈夫曼编码树。 哈夫…

中医背诵笔记(黄帝内经、伤寒论等)

目录 黄帝内经上古天真论今人和古人之差异(精神内守,病安从来?)男女每个年龄阶段身体状态至人、圣人、贤人 宣明五气篇五脏所藏 与 五脏所主七情与情绪与气的关系 天干地支天干地支与脏腑经络的关系 黄帝内经 上古天真论 今人和…

【模型】5分钟了解决策树是一个什么模型

本站原创文章,转载请说明来自《老饼讲解-机器学习》[www.bbbdata.com(https://www.bbbdata.com/ml) 决策树模型是机器学习中不可不学的模型之一,本文简单直接地快速讲解决策树是什么,如何实现。 一、决策树模型 决策树一般包括ID3决策树&am…

Qt:2.环境搭建

目录 1.搭建需要的三个组件: 2.下载Qt安装包: 3.安装qt: 4.配置环境变量: 1.搭建需要的三个组件: C编译器(gcc,cl.exe等)Qt的SDK:软件开发工具包,Windows…

java复习宝典,jdbc与mysql数据库

一.java 1.面向对象知识 (1)类和对象 类:若干具有相同属性和行为的对象的群体或者抽象,类是创建对象的模板,由属性和行为两部分组成。 类是对象的概括或者抽象,对象是类的实例化。 举例:例如车有很多类型&#xf…

从传统到智能:视频汇聚EasyCVR+AI视频监控如何助力仓储的智能化转型

随着物流行业的快速发展和市场竞争的加剧,仓储管理对于保证货物安全、提高运营效率显得尤为重要。传统的仓储监控方式已难以满足现代仓储管理的需求,因此,仓储视频智能监控解决方案应运而生。方案通过集成先进的视频监控技术、智能分析算法、…

xhs 旋转验证码剖析和协议算法实现

【作者主页】:小鱼神1024 【擅长领域】:JS逆向、小程序逆向、AST还原、验证码突防、Python开发、浏览器插件开发、React前端开发、NestJS后端开发等等 本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码&#…

Vue + SpringBoot 实现文件的断点上传、秒传,存储到Minio

一、前端 1. 计算文件的md5值 前端页面使用的elment-plus的el-upload组件。 <el-upload action"#" :multiple"true" :auto-upload"false" :on-change"handleChange" :show-file-list"false"><FileButton content&…

【系统架构设计师】六、信息系统基础知识(定义|分类|企业信息化系统|生命周期|建设原则|开发方法)

目录 一、信息系统的定义 二、信息系统的分类 三、企业使用的信息化系统 四、信息系统的生命周期 五、信息系统建设原则 六、信息系统的开发方法 6.1 结构化方法 6.2 原型法 6.3 构件化开发方法 6.4 面向服务的方法 6.5 面向对象的方法 6.6 敏捷方法 历年真题考情&#x…

Linux基础 - 存储结构与管理硬盘

目录 零. 简介 一. 文件系统 Ubuntu 文件系统结构&#xff1a; 路径: 二. 硬盘管理 零. 简介 Linux 文件系统是一种用于组织和存储文件、目录以及相关数据的架构。 常见的 Linux 文件系统有&#xff1a; Ext4&#xff08;Fourth Extended File System&#xff09;&#…

Java中Stream的特性

Stream新特性 被称之为Stream流&#xff0c;用于操作集合或者数组中的数据 优势&#xff1a;Stream流大量的结合了Lambda的语法风格&#xff0c;代码更简洁&#xff0c;可读性更好 使用步骤 先获取数据源&#xff0c;获取Stream流 Collect…

S_LOVE多端恋爱小站小程序源码 uniapp多端

S_LOVE多端恋爱小站小程序源码&#xff0c;采用uniapp多端开发框架进行开发&#xff0c;目前已适配H5、微信小程序版本。 源码下载&#xff1a;https://download.csdn.net/download/m0_66047725/89421726 更多资源下载&#xff1a;关注我。

【arduino】使用最新版本的软件2.3版本,安装设备驱动,成功上传设备到ESP32中,使用超便宜的主板16元的arduino就可以进行开发

1&#xff0c;下载软件 https://www.arduino.cc/en/software 购买硬件设备超级便宜&#xff1a; https://detail.1688.com/offer/607729642347.html?spma26352.13672862.offerlist.121.7af9638afU2nu2 https://detail.1688.com/offer/574143571194.html?_t1719333276237&…

基于ESP8266串口WIFI模块ESP-01S在AP模式(即发射无线信号( WiFi))下实现STC单片机与手机端网路串口助手相互通信功能

基于ESP8266串口WIFI模块ESP-01S在AP模式(即发射无线信号( WiFi))下实现STC单片机与手机端网路串口助手相互通信功能 ESP8266_01S引脚功能图ESP8266_01S原理图ESP8266_01S尺寸图检验工作1、USB-TTL串口工具(推荐使用搭载CP2102芯片的安信可USB-T1串口)与ESP8266_01S WiFi…

如何给小语种视频生成字幕

目前我们常看的有视频有中、英、日、韩这四种语言&#xff0c;如果我们想给其他的不常用的语言生成字幕怎么办&#xff1f;今天教大家如何给其他语言生成视频字幕文件 打开智游剪辑&#xff08;zyjj.cc&#xff09;搜索字幕生成&#xff0c;选择多语种那个就可以了 然后上传我们…

学习TTS遇到的问题2 什么是TCN模型

学习TTS遇到的问题2 什么是TCN模型 什么是TCN模型怎么理解 TCN中的 dilation&#xff1f;什么是 Dilation具体例子数学表达作用例子代码示例 什么是TCN模型 https://juejin.cn/post/7262269863343079479 https://blog.csdn.net/weixin_57726558/article/details/132163074 由下…