前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Flask 学习-5.请求对象Request

Flask 学习-5.请求对象Request

作者头像
上海-悠悠
发布2022-08-26 15:55:51
7260
发布2022-08-26 15:55:51
举报
文章被收录于专栏:从零开始学自动化测试

前言

在 Flask 中 由全局对象 request 来提供请求信息。

Request 请求对象

首先,您必须从 flask 模块导入请求对象:

代码语言:javascript
复制
from flask import request

通过使用 method 属性可以操作当前请求方法,通过使用 form 属性处理表单数据(在 POST 或者 PUT 请求 中传输的数据)。 以下是使用上述两个属性的例子:

代码语言:javascript
复制
from flask import Flask
from flask import render_template
from flask import request
app = Flask(__name__)

@app.route('/login', methods=['POST', 'GET'])
def login():
    error = None
    if request.method == 'POST':
        if request.form['username'] == 'test':
            return 'test 用户'
        else:
            error = 'Invalid username/password'
    return render_template('login.html', error=error)

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

login.html模板内容

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>login 表单</title>
</head>
<body>
    <form method="post">
        <div>
            <label for="user">用户名</label>
            <input name="username" id="user" placeholder="输入用户名">
        </div>
        <input type="submit" value="提交按钮">
        <div>
            <p>{% if  error %} {{ error }} {% endif %}</p>
        </div>
    </form>

</body>
</html>

启动服务后访问页面

输入username不等于test,就会出现error提示、

在上面代码中request.form获取表单输入的数据,request.method 获取用户请求方式。

args 属性

要操作 URL (如 ?key=value )中提交的参数可以使用 args 属性

代码语言:javascript
复制
searchword = request.args.get('key', '')

使用示例

代码语言:javascript
复制
from flask import Flask
from flask import render_template
from flask import request
app = Flask(__name__)

@app.route('/demo', methods=['GET'])
def search():
    key = request.args.get('user')
    return f'query 查询参数的值:{key}'

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

启动服务后,输入请求地址

代码语言:javascript
复制
http://127.0.0.1:5000/demo?user=yoyo

运行结果

常用的属性

request对象常用的属性

属性

功能

form

一个从POST和PUT请求解析的 MultiDict(一键多值字典)。

args

MultiDict,要操作 URL (如 ?key=value )中提交的参数可以使用 args 属性:searchword = request.args.get(‘key’, ‘’)

values

CombinedMultiDict,内容是form和args。可以使用values替代form和args。

cookies

请求的cookies,类型是dict。

stream

在可知的mimetype下,如果进来的表单数据无法解码,会没有任何改动的保存到这个 stream 以供使用。很多时候,当请求的数据转换为string时,使用data是最好的方式。这个stream只返回数据一次。

headers

请求头部,字典类型。

data

包含了请求的数据,并转换为字符串,除非是一个Flask无法处理的mimetype。

files

MultiDict,带有通过POST或PUT请求上传的文件。

environ

WSGI隐含的环境配置。

method

请求方法,比如POST、GET。

path

获取请求文件路径:/myapplication/page.html

base_url

获取域名与请求文件路径:http://127.0.0.1:5000/demo

url

获取全部url:http://127.0.0.1:5000/demo?id=1&edit=edit

url_root

获取域名:http://www.baidu.com/

is_xhr

如果请求是一个来自JavaScript XMLHttpRequest的触发,则返回True,这个只工作在支持X-Requested-With头的库并且设置了XMLHttpRequest。

endpoint

endpoint匹配请求,这个与view_args相结合,可是用于重构相同或修改URL。当匹配的时候发生异常,会返回None。

json

如果mimetype是application/json,这个参数将会解析JSON数据,如果不是则返回None。可以使用这个替代get_json()方法。

max_content_length

只读,返回MAX_CONTENT_LENGTH的配置键。

2022年第 12期《python接口web自动化+测试开发》课程,9月17号开学!

本期上课时间:2022年9月17号 - 2022年12月17号,周六周日上午9:00-11:00

报名费:报名费3000一人(周期3个月)

联系微信/QQ:283340479

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-08-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 从零开始学自动化测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Request 请求对象
  • args 属性
  • 常用的属性
    • 报名费:报名费3000一人(周期3个月)
      • 联系微信/QQ:283340479
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档