tornaodo 实现文件上传
页面主要代码
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gbk" /> <link type="text/css" rel="stylesheet" href="/static/main.css" /> <title></title> </head> <body> <script language="javascript" src="/static/js/jquery-3.3.1.min.js"></script> <script language="javascript" src="/static/js/"></script> <script language="javascript"> function eventHandler(e, myargs) { var _event = e[0] || window.event; myargs = myargs || {}; switch(_event.target.id) { case 'eva_old': alert("pre"); break; case 'upload': alert("upload"); formData = new FormData(); formData.append("file", $("#file")[0].files[0]); $.ajax({ url:"upload", type:"post", data:formData, contentType:false, processData: false, success:function(res) { var jsonRes = $.parseJSON(res); var res = jsonRes["res"]; var content = ""; $.each(jsonRes.excle, function(i, item) { content += "<tr>"; content += "<td width='100px'>"; content += item["city_name"]; content == "</td>"; content += "<td width='100px'>"; content += item["city_status"]; content += "</td>"; content += "</tr>"; }); $("#excle").html(content); $("#fileres").html(res); $("#num").html(jsonRes["num"]); }, error:function(err){ alert("网络连接失败,稍后重试",err); } }); break; } } </script> <div class="head"> </div> <div class="list"> <div id="div_user"> <form enctype="multipart/form-data" method='post'> <input type='file' name='file' id="file"/><br/> <input type='button' value='上传' id="upload" onclick="eventHandler(arguments);"/> </form> </div> <div> <p>num:<span id="num"></span></p> </div> <div id="fileres"> </div> <div id="excle"> <table id="excleTable"> <table> </div> </div> </body> </html>
文件上传处理文件
#!/usr/bin/env python # -*- coding: utf-8 -*- import sys import os import json import time import logging from unipath import Path import traceback import tornado.httpserver import tornado.ioloop import tornado.options import tornado.web import tornado.gen from tornado.options import define, options from tornado.httpclient import AsyncHTTPClient from tornado.web import HTTPError from tornado.iostream import StreamClosedError import BusBannedCity import common_logging import common_urllib logger = logging.getLogger(__name__) class UploadHandler(tornado.web.RequestHandler): @tornado.web.asynchronous @tornado.gen.coroutine def post(self): try: #获取当前时间 time_now = int(time.time()) #转换成localtime time_local = time.localtime(time_now) #转换成新的时间格式(2016-05-09 18:59:20) dt = time.strftime("%Y-%m-%d-%H:%M:%S",time_local) upload_path=os.path.join(os.path.dirname(__file__),'files') #文件的暂存路径 file_metas=self.request.files['file'] #提取表单中‘name’为‘file’的文件元数据 #获取第一个文件 meta = file_metas[0] filename=meta['filename'] filename = dt + filename filepath=os.path.join(upload_path,filename) with open(filepath,'wb') as up: #有些文件需要已二进制的形式存储,实际中可以更改 up.write(meta['body']) res = BusBannedCity.parse_excel(filepath) #文件解析函数 self.write(json.dumps(res)) #输出返回结果 except: logger.error("%s" % traceback.format_exc()); finally: logger.error("request[%s] time[%s]" % ( \ self.request.uri, \ self.request.request_time() )) self.finish()
tornado 启动文件
#!/usr/bin/env python # -*- coding: utf-8 -*- import sys import os import json import time import logging import common_logging import common_urllib from unipath import Path import traceback import tornado.httpserver import tornado.ioloop import tornado.options import tornado.web from tornado.options import define, options import file_eva_handler logger = logging.getLogger(__name__) class DefaultHandler(tornado.web.RequestHandler): @tornado.web.asynchronous def get(self): self.render("index.html") application = tornado.web.Application(handlers=[ (r"/upload", file_eva_handler.UploadHandler), (r"/", DefaultHandler), ], template_path=os.path.join(os.path.dirname(__file__), "templates"), static_path=os.path.join(os.path.dirname(__file__), "static")) if __name__ == '__main__': pid = os.fork() if pid < 0: sys.exit(1) elif pid > 0: sys.exit(0) else: logger.error("sys start...") server = tornado.httpserver.HTTPServer(application) server.bind(9999) server.start(4) tornado.ioloop.IOLoop.instance().start()
相关推荐
Tornado是一个Python Web框架和异步网络库,由FriendFeed团队开发,后来被Facebook收购并开源。它以其非阻塞I/O模型和强大的Web服务功能而闻名。 在分布式系统中,调度是关键的一环,它负责管理和协调各个节点的...
Tornado 是一个强大的 Python Web 开发框架,以其高性能和异步网络I/O闻名。它最初由 FriendFeed 团队开发,后来被 Facebook 收购并开源。Tornado 的设计目标是处理大量的并发连接,尤其适合长连接和实时Web应用,如...
Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快。得利于其 非阻塞的方式和对 epoll 的运用,Tornado 每秒可以处理数以千计的连接,因此 ...
# 基于Python Tornado框架的实时消息处理系统 ## 项目简介 本项目是一个基于Python Tornado框架的实时消息处理系统,旨在通过传统机器学习方法实现高效的消息识别与处理。系统支持多进程并行处理,具备灵活的配置...
【标题】基于 Python Tornado 框架开发的果蔬采购配货系统 【描述】本项目是一份计算机专业毕业设计的源代码,采用 Python 的 Tornado 框架构建了一个完整的果蔬采购配货系统。Tornado 是一个轻量级、高性能的 Web ...
本项目“linux下集中配置管理工具,使用python tornado框架,结合saltstack开发自己的远程集中管理平台”提供了一种解决方案。 盐堆栈(SaltStack)是一款强大的自动化运维工具,它允许用户通过简单的API接口远程...
这个毕业设计项目的核心是构建一个使用Python的Tornado框架来实现的果蔬采购配货系统。Tornado是一个开源的Web服务器和网络库,以其非阻塞I/O模型和异步处理能力而著名,非常适合构建高性能、高并发的网络应用,尤其...
Tornado是一个使用Python语言编写的开源Web框架,它以其非阻塞(异步)IO的特性而闻名,这使得它非常适合用于构建高并发、实时的Web服务。Tornado在处理大量实时连接方面表现出色,每秒可以处理数以千计的连接,这...
通过研究这个项目,学习者可以深化对Python Web开发的理解,特别是异步编程和Tornado框架的使用。此外,还可以了解到如何在PaaS环境中实现监控功能,包括收集性能指标(如CPU使用率、内存占用、网络流量等),展示...
使用 Python 语言、Tornado Web框架、TorCMS系统开发,网站程序基于MIT协议开源,托管于 https://github.com/bukun/maplet; WebGIS部分后台使用MapServer作为地图发布器,前端使用Leaflet JavaScript库。实现了地图...
基于 python tornado 框架开发的果蔬采购配货系统资料齐全+详细文档.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下...
本文档是关于使用Python语言和Tornado框架来实现简单Web应用测试的源码项目。该源码项目由24个文件组成,这些文件共同构成了一个基础的Tornado框架Web应用测试环境。项目中的文件类型多样,包括Python源代码文件、...
2. **Tornado框架**:Tornado的核心特性包括异步非阻塞I/O模型,使得它能够在单个线程中处理大量并发连接。此外,Tornado提供了Web服务器、HTTP客户端、模板引擎、WebSocket支持、会话管理以及错误处理等功能。 3. ...
Tornado可以与Django、Flask等其他Python Web框架集成,实现优势互补,如在Flask的简单路由和模板系统之上叠加Tornado的异步能力。 通过这个项目实践,你不仅能提升Python编程技能,还能掌握异步网络编程的关键...
基于Python Tornado框架的PaaS平台监控中心原型系统资料齐全+详细文档.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况...
基于python异步io框架Tornado,结合JavaScript的onkeydown事件、 jQuery的mousedown、mouseup、touchstart、touchend事件以及Ajax,实现了监控遥控命令与web网页指定按键和鼠标(屏幕)点击事件的绑定,同时也实现了...
基于python的+tornado框架实现的一个项目管理系统源码.zip 基于python的+tornado框架实现的一个项目管理系统源码.zip 基于python的+tornado框架实现的一个项目管理系统源码.zip
【标题】基于Python统一权限管理系统(基于Python的Tornado框架)是计算机专业毕业生在完成学业时经常选择的一个项目,它涉及到Web开发、权限管理和后端编程等多个重要领域。Tornado是一个开源的Python Web服务器和...
Python Tornado 框架允许开发者在同一程序中同时运行Web服务器和Socket服务器,并实现它们之间的交互,这在处理实时通信和高性能网络应用时非常有用。本文将详细介绍如何使用Tornado来构建这样的系统。 首先,我们...
【标题】中的“Python 使用 Tornado 框架实现 WebHook 自动部署 Git-gohook”揭示了这个项目的核心内容,即使用 Python 编程语言,结合 Tornado Web 框架来创建一个 WebHook 服务,该服务能够自动响应 Git 仓库的...