首页 > 其他分享 >Flask 学习-5.请求对象Request

Flask 学习-5.请求对象Request

时间:2022-08-21 20:45:28浏览次数:91  
标签:__ 请求 Flask request args Request flask

前言

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

Request 请求对象

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

from flask import request

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

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模板内容

<!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 属性

searchword = request.args.get('key', '')

使用示例

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()

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

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://www.baidu.com/myapplication/page.html
url 获取全部url:http://www.baidu.com/myapplication/page.html?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的配置键。

标签:__,请求,Flask,request,args,Request,flask
From: https://www.cnblogs.com/yoyoketang/p/16610827.html

相关文章

  • Flask 学习-4.templates 渲染模板
    前言在Python内部生成HTML不好写,且相当笨拙。因为您必须自己负责HTML转义,以确保应用的安全。因此Flask自动为您配置Jinja2模板引擎。django也是用的jinja2......
  • Flask 学习-3.设置 HTTP 请求 方法(get/post)
    前言使用route装饰器设置url访问地址,默认是get请求方式,通过methods参数可以设置不同的http请求方法methods参数没有声明请求方式,默认是get请求fromflaskimport......
  • Flask 学习-2.url访问地址(路由配置)
    前言通过url地址可以访问一个网页,Flask框架使用route()装饰器来把函数绑定到URL。路由使用route()装饰器来把函数绑定到URL。fromflaskimportFlaskapp=......
  • IIS 的网站访问 Bad Request(Invalid Hostname)
    刚做完迁移之后,发现网站打不开了。并且报了上面的错误。解决:    将IP改为*,重启IIS就可以了。......
  • 请求接口一直404
    今天写一个我自己网站的服务器然后老是请求报错404,几乎所有接口都是404唯有一个@GetMapping(value="/allEmp",produces="application/json;charset=utf-8")@Respon......
  • Filter拦截浏览器请求资源、Filter多个过滤器
    Filter拦截浏览器请求资源Filter拦截浏览器请求资源注解配置:*设置dispatcherTypes属性1.REQUEST:默认值。浏览器直接请求资源2.FORWARD:转发访问资源3.INCLUDE:包含访......
  • jmeter-10-提取多个id拼接请求数据及日期时间偏移,你会了吗?
    前言平时在使用Jmeter过程中,可能会遇到各种需求的参数需要处理,比如提取id拼接数组,又如时间日期处理等等那么接下来将记录平时个人使用时遇到过挺多的场景!gogogo!一、......
  • flask开发环境配置
    1.安装虚拟环境,打开vscode输入pipinstallvirtualenvvirtualenv--version2.创建项目文件夹mkdirmyproject创建你自己的文件夹输入cdmyproject进入你的文件夹然后输......
  • 如何通过 SAP ABAP OData $expand 操作在同一个 HTTP 请求中返回多个节点的数据试读版
    正如本教程的开篇介绍文章SAPOData开发教程-从入门到提高(包含SEGW,RAP和CDP)所提到的,SAPOData服务开发,从实现技术上来说,可以分为三大类。因此本教程也分为三大......
  • Flask 学习-1.简介与环境准备
    前言Flask是由python开发的轻量的web框架,小巧,灵活,一个脚本就可以启动一个web项目,上手非常容易。Flask和Django框架对比Django:大而全,有一套完整的框架,但是耦合性......