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用法(提取请求体数据)


flask-03 request对象

data用法(提取请求体数据)

flask-03 request对象

args用法(提取url中的参数,即查询字符串)

如果表单中出现了重复的键

flask-03 request对象

使用get提取form中的参数

使用getlist提取form中的参数

  • 通过request.method可以区分请求的方式是get还是post

二、上传文件

@app.route("/upload",methods=["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 calledhelloexit calledexc_type: Noneexc_val: Noneexc_tb: None


以上是关于flask-03 request对象的主要内容,如果未能解决你的问题,请参考以下文章

Python---Flask--03--Web表单

django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)(代码片段

django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)(代码片段

Flask 03

推进学说代码片段

VSCode自定义代码片段12——JavaScript的Promise对象