如何在Python中利用龙卷风实现一个文件上传功能

  介绍

这期内容当中小编将会给大家带来有关如何在Python中利用龙卷风实现一个文件上传功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

龙卷风是一种Web服务器软件的开源版本.Tornado和主流Web服务器框架(包括大多数Python的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快。

得利于其非阻塞的方式和对epoll的运用,龙卷风每秒可以处理数以千计的连接,因此龙卷风是实时Web服务的一个理想框架。

在网络开发过程中,文件上传是经常用到的功能,比如上传附件,上传照片等。下面我们来介绍一下利用龙卷风<代码> 来实现简单的文件上传功能。

<>强普通上传

#,编码:utf - 8   import  tornado.ioloop   import  tornado.web   import  shutil   import 操作系统   import  json   class  FileUploadHandler (tornado.web.RequestHandler):   def 才能得到(自我):   ,,,self.write (& # 39; & # 39; & # 39;   & lt; html>   ,& lt; head> & lt; title> Upload  File & lt;/head>   ,& lt; body>   & lt;才能form 行动=& # 39;文件# 39;,enctype=岸嗖糠?form-data",方法=& # 39;文章# 39;比;   & lt;才能input 类型=& # 39;文件# 39;,name=& # 39;文件# 39;/祝辞& lt; br/比;   & lt;才能input 类型=& # 39;提交# 39;,价值=https://www.yisu.com/zixun/'提交'/>      “”)      def post(自我):   ret={“结果”:“OK”}   upload_path=os.path.join (os.path.dirname (__file__),“文件”)#文件的暂存路径   file_metas=self.request.files。(“文件”,没有一个)#提取表单中“名称”为“文件”的文件元数据      如果不是file_metas:   ret['结果']=拔扌У牟问?   返回受潮湿腐烂      在file_metas元:   文件名=元(“文件名”)   file_path=os.path。加入(upload_path文件名)      张开(file_path,“世界银行”):   up.write(元(身体的))   #或做其他事情      self.write (json.dumps (ret))         应用=tornado.web.Application ([   (r/文件,FileUploadHandler),   ])      if __name__==癬_main__”:   app.listen (8080)   .start tornado.ioloop.IOLoop.instance () ()

<>强采用ajax上传

采用ajax上传,需要修改一下前端发送请求的方式。可参照如下方式:

,, & lt; html>   ,,& lt; head> & lt; title> Upload  File   ,,& lt; script 类型=拔谋?javascript", src=?www/静态/jquery.min.js"祝辞& lt;/script>   ,,& lt;/head>   ,,& lt; body>   ,,,& lt; form  id=& # 39;上传# 39;,action=& # 39;上传# 39;,enctype=岸嗖糠?form-data",方法=& # 39;文章# 39;比;   ,,,& lt; input  type=& # 39;文件# 39;,name=& # 39;文件# 39;/祝辞& lt; br/比;   ,,,& lt; input  type=& # 39;按钮# 39;,id=& # 39;提交# 39;,value=& # 39;提交# 39;/比;   ,,,& lt;/form>   ,,& lt;/body>   ,,& lt; script>   ,,,$(& # 39;#提交# 39;).click(函数(){   ,,,,,var  form =,美元(& # 39;形式# 39;)[0];   ,,,,,var  formData =, new  FormData(形式);   ,,,,,formData.append(& # 39;图像# 39;,,美元(& # 39;输入[类型=文件]& # 39;)[0].files [0]);   ,,,,,. ajax({美元   ,,,,,,,url:, & # 39;/文件/上传# 39;   ,,,,,,,数据:,formData,   ,,,,,,,类型:,& # 39;文章# 39;   ,,,,,,,contentType:,假的,   ,,,,,,,processData:,假的,   ,,,,,,,:成功,函数(数据){   ,,,,,,,,,var  obj =, jQuery.parseJSON(数据);   ,,,,,,,,,警报(obj.result);   ,,,,,,,,,//TODO   ,,,,,,,},   ,,,,,,,错误:,功能(数据){   ,,,,,,,,,var  obj =, jQuery.parseJSON(数据);   ,,,,,,,,,警报(data.result);   ,,,,,,,}   ,,,,,})   ,,,});      ,,& lt;/script>   & lt;才能/html>

<强>注意

龙卷风处理文件上传时,会把整个文件放在内存中。
如果有上传大文件的需求,一般会使用nginx的文件上传模块(第三方模块,需要编译)。

上述就是小编为大家分享的如何在Python中利用龙卷风实现一个文件上传功能了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

如何在Python中利用龙卷风实现一个文件上传功能