【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()
  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值