zoukankan      html  css  js  c++  java
  • Flask ~~“一见钟情之初体验”(flask的request模块的属性及上下文)

    上下文:相当于一个容器,保存了 Flask 程序运行过程中的一些信息。

    Flask中有两种上下文,请求上下文和应用上下文
    请求上下文(request context)

    在 flask 中,可以直接在视图函数中使用 request 这个对象进行获取相关数据,而 request 就是请求上下文的对象,保存了当前本次请求的相关数据,请求上下文对象有:request、session
    request
    封装了HTTP请求的内容,针对的是http请求。举例:user = request.args.get('user'),获取的是get请求的参数。
    session
    用来记录请求会话中的信息,针对的是用户信息。举例:session['name'] = user.id,可以记录用户信息。还可以通过session.get('name')获取用户信息。
    应用上下文(application context)
    它的字面意思是 应用上下文,但它不是一直存在的,它只是request context 中的一个对 app 的代理(人),所谓local proxy。它的作用主要是帮助 request 获取当前的应用,它是伴 request 而生,随 request 而灭的。
    应用上下文对象有:current_app,g
    current_app
    应用程序上下文,用于存储应用程序中的变量,可以通过current_app.name打印当前app的名称,也可以在current_app中存储一些变量,例如:
    应用的启动脚本是哪个文件,启动时指定了哪些参数
    加载了哪些配置文件,导入了哪些配置
    连了哪个数据库
    有哪些public的工具类、常量
    应用跑再哪个机器上,IP多少,内存多大
    current_app.name
    current_app.test_value='value'
    g变量
    g 作为 flask 程序全局的一个临时变量,充当者中间媒介的作用,我们可以通过它传递一些数据,g 保存的是当前请求的全局变量,不同的请求会有不同的全局变量,通过不同的thread id区别
    g.name='abc'
    注意:不同的请求,会有不同的全局变量
    两者区别:
    请求上下文:保存了客户端和服务器交互的数据
    应用上下文:flask 应用程序运行过程中,保存的一些配置信息,比如程序名、数据库连接、应用信息等

    上边所提的g变量就相当于python中的全局变量,而且可以跨文件使用,具体如下:

    首先创一个py文件 里边写好g变量的内容,如:

    # -*- encoding: utf-8 -*-
    #导入g模块
    from flask import Flask,g def check_username(): g.username = '你好' print(g.username)

    在另一个py文件直接以导包的方法导入文件名和方法名

    from 文件名 import 方法名

    代码如下:

    # -*- encoding: utf-8 -*-
    #g相当与globle  current_app是当前的应用
    from flask import Flask,current_app,g
    #从自定义的工具类文件内部引入check_username方法
    #utils是刚刚g方法的文件名
    from utils import check_username #建立对象 app=Flask(__name__) #载入配置文件 app.config.from_pyfile('config.ini') @app.route('/',methods=['POST','GET']) def index(): #current_app模块用来存储当前应用的具体配置信息 # print(current_app.__dict__) #打印全局对象g里面自定义的属性username check_username() return '这里是首页' if __name__ == "__main__": app.run()

    flask的request模块的属性如下:


    method:请求的方法(get或者post)
    form:返回form的内容
    args和values:args返回请求中的参数,values返回请求中的参数和form
    cookies:cookies信息
    headers:请求headers信息,返回的结果是个list
    date、files:date是请求的数据,files随请求上传的文件

    代码效果如下:

    # -*- encoding: utf-8 -*-
    
    from flask import Flask,request
    
    app=Flask(__name__)
    
    app.config.from_pyfile('config.ini')
    
    @app.route('/',methods=['POST','GET'])
    def index():
    
    #打印头部信息
    print(request.headers)
    
    #打印请求的方式
    print(request.method)
    
    #打印出请求的url地址
    print(request.url)
    
    #打印使用的cookie信息
    print(request.cookies)
    
    #打印网址的参数信息
    print(request.args.get('id'))
    
    #打印某个对象所有的属性
    print(request.__dict__)
    return '这里是首页'
    
     
    
    if __name__ == "__main__":
    app.run()
  • 相关阅读:
    php环境配置中各个模块在网站建设中的功能
    PHP+Apache+MySQL+phpMyAdmin在win7系统下的环境配置
    August 17th 2017 Week 33rd Thursday
    August 16th 2017 Week 33rd Wednesday
    August 15th 2017 Week 33rd Tuesday
    August 14th 2017 Week 33rd Monday
    August 13th 2017 Week 33rd Sunday
    August 12th 2017 Week 32nd Saturday
    August 11th 2017 Week 32nd Friday
    August 10th 2017 Week 32nd Thursday
  • 原文地址:https://www.cnblogs.com/sashao/p/10152272.html
Copyright © 2011-2022 走看看