Flask模板上传文件和with方法(flask实现文件上传)

网友投稿 352 2022-08-28


Flask模板上传文件和with方法(flask实现文件上传)

使用

request.files.get('pic')

来接收上传过来的文件,返回当前上传文件的文件对象

# -*- coding: utf-8 -*-from flask import Flask , requestapp = Flask(__name__)@app.route("/upload",methods=["POST"])def upload(): """接收前端传送过来的文件""" file_obj = request.files.get("pic") # 判断是否上传 if file_obj is None: return "没有上传操作" # 将文件保存到本地 # 1、创建文件 f = open("./demo.jpg","wb") # 2、读取上传的文件二进制内容 data = file_obj.read() # 3、写入文件二进制内容到新文件中 f.write(data) f.close() return "文件上传成功"if __name__ == '__main__': app.run(debug=True)

流程:

前端提交过来的文件名,接收后返回文件对象,判断文件对象是否为空,将文件保存到本地,关闭资源句柄

# 将文件保存到本地 # 1、创建文件 f = open("./demo.jpg","wb") # 2、读取上传的文件二进制内容 data = file_obj.read() # 3、写入文件二进制内容到新文件中 f.write(data)

在flask中用

file_obj.save("./demo.jpg")

即可代替完成上面三句代码

with方法

一般语法

with open("./1.txt", "wb") as f: 文件操作代码

在类中有两个魔术方法是专门用来操作with的

理解为将with拆分成了两份

__enter__() 在进入with时调用__exit__() 在结束with时调用

一份是主代码区,写在了类中__enter__魔术方法中

一份是结束代码、接收报错区,写在类中__exit__魔术方法中

class Foo(object): def __enter__(self): """在进入with时立马调用此代码此方法代码""" print("enter call back") def __exit__(self,exc_type,exc_val,exc_tb): """在结束with时调用""" print("end call back") print("exc_type : %s" % exc_type) print("exc_val : %s " % exc_val) print("exc_tb : %s " % exc_tb)with Foo() as f: # 进入with立马先调用__enter__中方法 print("hello python")

如果with中语句报错会在__exit__中获取到错误详细信息,并输出。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:那些我们从牛客上学到的python干货(牛客网python测试考试答案)
下一篇:mybatis源码解读之executor包语句处理功能
相关文章

 发表评论

暂时没有评论,来抢沙发吧~