Flask request 属性详解

本文详细介绍了Flask框架中request对象的使用,包括request.method获取请求方法,request.form和request.args处理POST和GET请求数据,request.cookies和request.headers获取cookie和请求头信息,以及request.url相关属性获取URL详情。通过示例代码展示了如何在登录和文件上传场景中应用这些属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、从Flask模块导入request

from flask import request

注意,如果需要将字典转为json串,还需要导入json模块

import json

2、定义视图函数支持的请求方法

@app.route("/req",methods=["POST"]) 

3、Flask request 属性

  • 注意点:在使用request.form.get()获取内容的时候,可能会用到json.dumps():将python中的字典转换为json字符串
request.method  返回请求方法

request.args 返回get请求参数数据(key-value),主要是GET请求,请求参数在url中.也即请求链接中?后⾯的所有参数  #获取get请求的数据

request.args.get('a')  返回get请求url中参数a的值,数据来源是url地址 # 获取get请求指定的值

request.form 返回get请求form表单中的数据(key-value),原理跟request.args差不多,只是request.args数据来源是url,request.form的数据来源是表单 # 获取post请求的数据

request.form.get('username') 返回post请求表单中key为username的值,也即在html页面中定义的name对应的元素的输入值  # 获取post请求指定的值

request.form.getlist('serv')  在Flask中,getlist是request对象的一个方法,用于获取表单中同名字段的多个值,获取值方式同request.form.get() ,当表单中存在多个同名字段时(html中多个元素name值可以相同),使用getlist可以获取到所有的值,并返回一个列表。 # 

request.cookies 返回cookies信息

request.cookies.get('') #返回某个具体的cookie值

request.headres 返回请求头信息

request.data  如果处理不了的数据就变成字符串存在data里面

request.files  返回上传或下载的文件信息

request.path 返回请求文件路径:/myapplication/page.html

request.base_url 返回域名与请求文件路径:http://www.baidu.com/myapplication/page.html

request.url 返回全部url:http://www.baidu.com/myapplication/page.html?id=1&edit=edit

request.url_root  返回域名:http://www.baidu.com/

最常用如下:

request.args.get('a') 返回get请求的值,一般为url中参数a的值经过视图函数业务逻辑处理后的值,而参数值来源于表单中输入的数据,那么,先要获取在html页面中定义的元素的name值对应的输入值 ----前端需要给元素定义name,然后输入的内容通过name传给后端。

request.form.get('username') 返回post请求中的值,返回表单key为username的值,一般为表单输入的数据经过视图函数业务逻辑处理后的值,那么,先要获取在html页面中定义的元素的name值对应的输入值----前端需要给元素定义name,然后输入的内容通过name传给后端。

4、示例

(1)POST请求视图函数

from flask import Flask, render_template,Blueprint,request
import json

form444 = Blueprint('formDis444', __name__)
#实例化蓝图对象
#两个必要参数':
# 第一个参数:蓝图名字,自定义'
# 第二个参数:__name__'蓝图所在的模块或者包,一般为'__name__'变量;
# 第三个参数:url_prefix,非必填,,表示在该蓝图下,所有的url地址访问路径中都要加上xxx路径,即域名/xxx/路由

@form444.route('/test6')#在蓝图对象上进行操作,路由
def fromtest6():
    return render_template('order3.html')

@form444.route('/test7',methods=['GET','POST'])  ##定义视图函数支持的请求方法
def formtest7():
    if request.method == 'POST':
        number55 = request.form.get('number5')  #因为请求方法为post,因此使用request.form.get()方法,并且获取的值是字符串类型
        number66 = request.form.get('number6') #因为请求方法为post,因此使用request.form.get()方法,并且获取的值是字符串类型
        numberC = number55 + number66
        return request.method
        # return request.form
        # return request.form['number5']
        # return json.dumps(request.form)
        # return str(request.headers)
        # return request.headers.get('User-Agent')
        # return request.url
        # return request.path
        # return request.base_url
        # return request.url_root

(2)GET请求视图函数

from flask import Flask, render_template,Blueprint,request
import json

form555 = Blueprint('formDis555', __name__)
#实例化蓝图对象
#两个必要参数':
# 第一个参数:蓝图名字,自定义'
# 第二个参数:__name__'蓝图所在的模块或者包,一般为'__name__'变量;
# 第三个参数:url_prefix,非必填,,表示在该蓝图下,所有的url地址访问路径中都要加上xxx路径,即域名/xxx/路由

@form555.route('/test8')#在蓝图对象上进行操作,路由
def fromtest2():
    return render_template('order4.html')

@form555.route('/test9',methods=['GET','POST'])  #定义视图函数支持的请求方法
def formtest3():
    if request.method == 'GET':
        number77 = request.args.get('number7')  #因为请求方法为get,因此使用request.args.get()方法,并且获取的值是字符串类型
        number88 = request.args.get('number8') #因为请求方法为get,因此使用request.args.get()方法,并且获取的值是字符串类型
        numberD = number77 + number88
        # return request.args
        # return request.args['number7']
        return json.dumps(request.args)

返回值汇总如下:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值