flask-03 request对象
Posted 每天优一点
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了flask-03 request对象相关的知识,希望对你有一定的参考价值。
打卡第三天
一、request的form、data、args用法
如果前端传过来的数据是form表单类型的,那么flask已经帮我们处理好了,就在request.form中,这时候的request.data里没有东西。如果前端传过来的是json类型的,则request.data里就是传过来的json数据。args用于提取QueryString中的信息
/index?city=beijing city=beijing称为查询字符串,不局限于请求方式,QueryString。city = request.args.get("city")
@app.route("/index",methods=["GET","POST"])
def index():
#request中包含了前端发送过来的所有请求数据
#request.form可以直接提取请求体中的表单格式数据,是一个类字典的对象
print(request.data)
name = request.form.get("name","mudy")
age = request.form.get("age","19")
return "hello name = %s ,age=%s "%(name,age)二、上传文件
form用法(提取请求体数据)
data用法(提取请求体数据)
args用法(提取url中的参数,即查询字符串)
如果表单中出现了重复的键
使用get提取form中的参数
使用getlist提取form中的参数
通过request.method可以区分请求的方式是get还是post
二、上传文件
def upload():
"""
接收前端穿过来的文件
"""
file_obj = request.files.get("pic")
print(file_obj is None)
if file_obj:
f = open("up.jpeg","wb")
f.write(file_obj.read())
f.close()
return "上传成功"
else:
return "未上传文件"
存储文件的那几行代码可以使用file_obj.save("up2.jpeg")替代
三、with使用
with 上下文管理器
with open("up.jpg") as f:
f.write(file_obj.data())
# 不需要我们手动关闭,以及出现异常的时候关闭文件
class Foo(object):
def __enter__(self):
print("enter called")
def __exit__(self, exc_type, exc_val, exc_tb):
print("exit called")
print("exc_type: %s" % exc_type) #这些是异常信息
print("exc_val: %s" % exc_val)
print("exc_tb: %s" % exc_tb)
with Foo() as foo:
print("hello")
输出:
enter called
hello
exit called
exc_type: None
exc_val: None
exc_tb: None
以上是关于flask-03 request对象的主要内容,如果未能解决你的问题,请参考以下文章
django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)(代码片段
django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)(代码片段