Flask请求request
Flask中的request是一个公共变量,需要导入request
from flask import Flask,request
接收url中的参数
@app.route("/req")
def req():
print(request.method) #获取访问方式 GET
print(request.url) #获取url http://127.0.0.1:5000/req?id=1&name=wl
print(request.cookies) #获取cookies {}
print(request.path) # 获取访问路径 /req
print(request.args) #获取url传过来的值 ImmutableMultiDict([('id', '1'), ('name', 'wl')])
print(request.args.get("id")) #get获取id 1
print(request.args["name"]) # 索引获取name wl
print(request.args.to_dict()) # 获取到一个字典 {'id': '1', 'name': 'wl'}
return "Hello"
接收form中的参数
前端代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="" method="post">
<input type="text" name="username">
<input type="password" name="pwd">
<input type="submit" value="登陆">
</form>
</body>
</html>
后端接收到的参数
@app.route("/login",methods=["POST","GET"])
def login():
print(request.form) # 格式 ImmutableMultiDict([('username', '123'), ('pwd', '123')])
print(request.form.to_dict()) # 格式 {'username': '123', 'pwd': '123'}
return render_template("login.html")
接收文件
request.files :接收文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="" method="post" enctype="multipart/form-data">
<input type="text" name="username">
<br>
<input type="password" name="pwd">
<br>
<input type="file" name="my_file">
<br>
<input type="submit" value="登陆">
</form>
</body>
</html>
上传文件并保存
@app.route("/login", methods=["POST", "GET"])
def login():
# print(request.form) # 格式 ImmutableMultiDict([('username', '123'), ('pwd', '123')])
# print(request.form.to_dict()) # 格式 {'username': '123', 'pwd': '123'}
my_file = request.files.get("my_file") # 格式 ImmutableMultiDict([('my_file', <FileStorage: 'Chrysanthemum.jpg' ('image/jpeg')>)])
file_path = os.path.join("static", "1.jpg")
my_file.save(file_path)
return render_template("login.html")
json data values
@app.route("/login", methods=["POST", "GET"])
def login():
print(request.data) # 存放的是请求体中的原始信息 Content-Type:无法识别的类型
print(request.json) # 请求头中存在 Content-Type:application/json 将请求体中的数据 存放在JSON中
print(request.values) # CombinedMultiDict([ImmutableMultiDict([]), ImmutableMultiDict([('username', '123'), ('pwd', '123'), ('my_file', '')])])
print(request.values.to_dict()) # 这是个坑!!!{'username': '123', 'pwd': '123', 'my_file': ''}
return render_template("login.html")
Flask请求request的更多相关文章
- Flask -- 请求、上传文件、Cookies
请求对象 from flask import request request.method #值为form表单提交的method 'POST'. 'GET'等 #如果值为'POST'或'PUT',则可 ...
- Flask请求扩展和数据库连接池
1.1.Flask之请求扩展 #!/usr/bin/env python # -*- coding:utf-8 -*- from flask import Flask, Request, render ...
- flask请求上下文
先看一个例子: #!/usr/bin/env python # -*- coding:utf-8 -*- import threading # local_values = threading.loc ...
- flask请求钩子、HTTP响应、响应报文、重定向、手动返回错误码、修改MIME类型、jsonify()方法
请求钩子: 当我们需要对请求进行预处理和后处理时,就可以用Flask提供的回调函数(钩子),他们可用来注册在请求处理的不同阶段执行的处理函数.这些请求钩子使用装饰器实现,通过程序实例app调用,以 b ...
- 02 flask 请求钩子、异常捕获、上下文、Flask-Script 扩展、jinja2 模板引擎、csrf防范
一 请求勾子 在客户端和服务器交互的过程中,有些准备工作或扫尾工作需要处理,比如: 在请求开始时,建立数据库连接: 在请求开始时,根据需求进行权限校验: 在请求结束时,指定数据的交互格式: 为了让每个 ...
- flask 之request用法
每个框架中都有处理请求的机制(request),但是每个框架的处理方式和机制是不同的 为了了解Flask的request中都有什么东西,首先我们要写一个前后端的交互 基于HTML + Flask 写一 ...
- Flask中request参数
首先要明确一件事,Request这是个对象,不管使用PHP还是python还是什么java语言,虽然request这个对象可能叫的名字不一样,(在其他语言中可能叫什么HttpRequest),但是原理 ...
- 【Flask】关于Flask的request属性
前言 在进行Flask开发中,前端需要发送不同的请求及各种带参数的方式,比如GET方法在URL后面带参数和POST在BODY带参数,有时候又是POST的表单提交方式,这个时候就需要从request提取 ...
- Flask(4)- flask请求上下文源码解读、http聊天室单聊/群聊(基于gevent-websocket)
一.flask请求上下文源码解读 通过上篇源码分析,我们知道了有请求发来的时候就执行了app(Flask的实例化对象)的__call__方法,而__call__方法返回了app的wsgi_app(en ...
随机推荐
- Visual Studio中的.suo(Solution User Options)文件
其实关于.suo文件,官方文档和网上很多资料就说明的十分详细了,本文主要按照我自己的理解将其整理归纳成一篇笔记以备日后查看..suo文件全称为:Solution User Options,看了很多资料 ...
- 一键安装基于dns的高可用k8s集群(3节点,etcd https)
在公司,使用dns切换,可能会比keepalived+haproxy,更精简的易维护. 毕竟,高可用只是偶尔切换,不是时时切换. 且dns解析在自己可控时,更不会影响k8s线上使用了. (部分代码,由 ...
- zjoi[ZJOI2018]胖
题解: 因为n,m很大 所以复杂度应该是和m相关的 考虑到每个点的影响区间是连续的 就很简单了 区间查询最小值线段树维护(st表也可以) 然后注意一下不要重复算一个就可以了 max函数用templat ...
- docker-java Docker的java API
docker-java docker-java 是 Docker的 Java 版本API Docker 当前的实现基于 Jersey 2.x 因此 classpath 不兼容老版本的 Jersey 1 ...
- MySQL事务提交过程(一)
MySQL作为一种关系型数据库,已被广泛应用到互联网中的诸多项目中.今天我们来讨论下事务的提交过程. MySQL体系结构 由于mysql插件式存储架构,导致开启binlog后,事务提交实质是二阶段提交 ...
- Python_python内置加密模块
数据加密: 对称加密:数据加密和解密使用相同的密钥,主要解决数据的机密性(DES,AES) 非对称加密(公匙加密):数据加密和解密使用的不同密钥,主要用于身份的验证(DSA,RSA) 单向加密:只能加 ...
- Python学习(八) —— 内置函数和匿名函数
一.递归函数 定义:在一个函数里调用这个函数本身 递归的最大深度:997 def func(n): print(n) n += 1 func(n) func(1) 测试递归最大深度 import sy ...
- Codeforces 1144G Two Merged Sequences dp
Two Merged Sequences 感觉是个垃圾题啊, 为什么过的人这么少.. dp[ i ][ 0 ]表示处理完前 i 个, 第 i 个是递增序列序列里的元素,递减序列的最大值. dp[ i ...
- DC3求后缀数组板子
#include<bits/stdc++.h> #define LL long long #define fi first #define se second #define mk mak ...
- zip文件解压工具类
java解压zip文件 import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io. ...