java中的接口是类吗
383
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~