flask基础---第三篇
flask中request的一些方法
- 首先from flask import request
1.request.path
2.request.host
3.request.host_url
from flask import Flask, request app = Flask(__name__)
@app.route('/')
def index():
print(request.path) #/
print(request.host) #127.0.0.1:5000
print(request.host_url) #http://127.0.0.1:5000/
return 'hello'
if __name__ == '__main__':
app.run(debug=True)
4.request.method 获取请求方式
from flask import Flask, request app = Flask(__name__)
@app.route('/')
def index():
print(request.method) #GET
if request.method=="GET":
print('use GET method') #use GET method
return 'hello'
if __name__ == '__main__':
app.run(debug=True)
5.request.args 获取url参数
- 获取字典的key值有两种方法,分别是索引['id']和get方法,如果索引的value值错误会出现一个keyerro的错误,如果是get的value的值错误会是None
- request.args.get('id') #拿到url单独的一个参数
- request.args.to_dict() #得到一个字典
- request.args.to_dict().get('id') #字典通过get方法获取值
- request.args.to_dict()['id'] #字典通过索引获取值
from flask import Flask, request
app = Flask(__name__)
@app.route('/')
def index():
#获取url中的参数,比如url为http://127.0.0.1:5000/?id=1&name=2,通过request.args得到一个
#类似于字典的元组ImmutableMultiDict([('id', '1'), ('name', '2')])
print(request.args) #ImmutableMultiDict([('id', '1'), ('name', '2')])
print(request.args.get('id')) #拿到了id的值1
print(request.args.get('name')) #拿到了name的值2
arg=request.args.to_dict()
print(arg) #拿到了一个字典{'id': '1', 'name': '2'}
print(arg['id']) #通过索引拿到了id的值1
print(arg.get('id')) #通过get方法拿到了id的值1
return 'hello'
if __name__ == '__main__':
app.run(debug=True)
6.request.form 获取FormData 数据
- request.form.to_dict() #获取一个登陆信息的字典
7.request.files 接收FormData中的文件
- request.files.to_dict() #生成一个字典
- request.file.get('文件名') # 通过文件名获取文件
- request.file.get('文件名').save(file.filename) #通过文件名获取文件之后以原文件名保存到当前目录下
- request.file.get('文件名').save('新文件名') #通过文件名获取文件之后以新文件名保存到当前目录下
from flask import Flask, request, render_template
app = Flask(__name__)
@app.route('/login',methods=['POST','GET']) #如果出现状态码405是因为没有加上methods方法
def login():
if request.method=="GET":
return render_template('login2.html')
else:
print(request.form)#获得ImmutableMultiDict([('username', '123')])
print(request.form.to_dict())#获得一个字典{'username': '123'}
print(request.files)#获取ImmutableMultiDict([('my_file', <FileStorage: '1.jpg' ('image/jpeg')>)])
print(request.files.to_dict())#获取字典{'my_file': <FileStorage: '1.jpg' ('image/jpeg')>}
print(request.files.get('my_file'))#获取key值<FileStorage: '1.jpg' ('image/jpeg')>
file=request.files.get('my_file')
file.save(file.filename) #保存文件到目录下
return '登录成功'
if __name__ == '__main__':
app.run(debug=True)
//login.html页面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="" method ='post' enctype="multipart/form-data">#enctype="multipart/form-data
<input type="text" name="username">#输入框
<input type="file" name="my_file"> #提交文件的选择框
<input type="submit" value="提交">#按钮
</form>
</body>
</html>
8.request.json 请求头 带有Content-Type:application/json 请求体中的数据自动序列化至此,生成一个字典,而且在data中依然
存储着以byte形式的原始数据
9.request.data 获取请求体中的原始数据 是一个字节流b"”
10request.values 这个是获取args+form 慎用,有坑
flask基础---第三篇的更多相关文章
- NHibernate 映射基础(第三篇) 简单映射、联合主键
NHibernate 映射基础(第三篇) 简单映射.联合主键 NHibernate完全靠配置文件获取其所需的一切信息,其中映射文件,是其获取数据库与C#程序关系的所有信息来源. 一.简单映射 下面先来 ...
- Python基础第三篇
一.collections系列 Counter是对字典类型的补充,用于追踪值的出现次数,具备字典的所有功能 + 自己的功能 1.计数器Counter import collections a='aba ...
- Python【基础第三篇】
set集合 s1=set() 集合特点: 访问速度快 没有重复项 collections系列(数据类型容器模块) 一.计数器(Counter) Counter是对字典类型的补充,用于追踪值的出现次数. ...
- Django基础第三篇
一.ORM操作 1.常用字段和参数 Autofied 自增的整形字段,必填参数primary_key=True, 则成为数据库的主键,如无该字段,django自动创建 IntegerField 一个 ...
- bootstrap基础学习三篇
bootstrap的排版 1.标题 Bootstrap 中定义了所有的 HTML 标题(h1 到 h6)的样式 2.代码如下: <div class="container"& ...
- python基础-第三篇-函数编程
基本数据类型之set set是无序不允许重复的集合 set创建:s = set() 创建空集合 s = {11,22,33} 转换s = set(可迭代数据) li = [11,22,33,44] ...
- java基础第三篇
6.Java 中的容器(重点) a.变量:变量是一个容器,它存储的单个值 //int i=3; 1.局部变量:定义在方法中,没有默认值 2.成员变量:定义在类中方法外,这个事物的属性(特征)定义为成员 ...
- Java笔记(基础第三篇)
面向对象的特点: 封装 继承 多态 类的构造方法 如果在类中定义的构造方法都不是无参的构造方法,则编译器不会为类设置一个默认的无参构造方法,当视图调用无参构造方法实例化一个对象时,编译器会报错,所以只 ...
- 第三篇 Flask 中的 request
第三篇 Flask 中的 request 每个框架中都有处理请求的机制(request),但是每个框架的处理方式和机制是不同的 为了了解Flask的request中都有什么东西,首先我们要写一个前 ...
随机推荐
- SHA256withRSA证书签名,私钥签名/公钥验签
证书签名 package test; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundE ...
- golang设置title并获取窗口句柄
package main import ( "fmt" "syscall" "github.com/lxn/win") func main( ...
- kube-liveboard: kubernetes集群可视化工具
kube-liveboard 随着kubernetes 集群的增大,对于集群数据选取恰当的形式进行展示有助于直观反映集群的状态,方便发现集群的短板,了解集群的瓶颈.因此,笔者做了kube-livebo ...
- 你不知道的JS(2)深入了解闭包
很久之前就想写一篇关于闭包的博客了,但是总是担心写的不够完全.不够好,不管怎样,还是要把我理解的闭包和大家分享下,比较长,希望耐心看完. 定义 说实话,给闭包下一个定义是很困难的,原因在于javasc ...
- java代码块,静态代码块,静态变量,构造方法执行顺序
一个类中执行顺序: 静态变量静态代码块代码块构造方法 子类和父类执行顺序: 父类静态变量父类静态代码块子类静态变量子类静态代码块父类代码块父类构造方法子类代码块子类构造方法 直接看代码,一目了然. p ...
- 详解Bootstrap实现基本布局的方法
看到了一篇 20 分钟打造 Bootstrap 站点的文章,内容有点老,重新使用bootstrap教程实现一下,将涉及的内容也尽可能详细说明. 1. 创建基本的页面我们先创建一个基本的 HTML 模板 ...
- pycharm使用selenium之前
2.python安装好后,查看你的pycharm输出控制台,第一行就写了你所使用的python.exe的路径,如下图箭头处所示: 检查python使用的是不是你刚刚安装的,如果不是,换成你刚刚安装的p ...
- matlab从曲线图提取数据
同学用肉体一顿饭让我帮他做下这个DDL 样图是一张非常扭曲的三虚线图他甚至想OCR识别x轴y轴坐标单位 上谷歌查了查,对于曲线图提取数据基本上是手动在曲线上取几个点,然后由这个几个点开始遍历领域点,判 ...
- 生信工具汇总--OMICtools
各种生信工具: https://omictools.com/
- 关于python中loc和iloc方法
pandas以类似字典的方式来获取某一列的值 import pandas as pd import numpy as np table = pd.DataFrame(np.zeros((4,2)), ...