`
shaojiashuai123456
  • 浏览: 262089 次
  • 性别: Icon_minigender_1
  • 来自: 吉林
社区版块
存档分类
最新评论

python tornado 框架使用 (6)

阅读更多

                       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()

 

 

分享到:
评论

相关推荐

    python基于Tornado实现,系统核心调度,可分布式扩展

    Tornado是一个Python Web框架和异步网络库,由FriendFeed团队开发,后来被Facebook收购并开源。它以其非阻塞I/O模型和强大的Web服务功能而闻名。 在分布式系统中,调度是关键的一环,它负责管理和协调各个节点的...

    tornado 框架 -python web 异步

    Tornado 是一个强大的 Python Web 开发框架,以其高性能和异步网络I/O闻名。它最初由 FriendFeed 团队开发,后来被 Facebook 收购并开源。Tornado 的设计目标是处理大量的并发连接,尤其适合长连接和实时Web应用,如...

    Python Tornado 中文教程

    Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快。得利于其 非阻塞的方式和对 epoll 的运用,Tornado 每秒可以处理数以千计的连接,因此 ...

    毕业设计:基于 python tornado 框架开发的果蔬采购配货系统.zip

    【标题】基于 Python Tornado 框架开发的果蔬采购配货系统 【描述】本项目是一份计算机专业毕业设计的源代码,采用 Python 的 Tornado 框架构建了一个完整的果蔬采购配货系统。Tornado 是一个轻量级、高性能的 Web ...

    linux下集中配置管理工具,使用python tornado框架,结合saltsatck开发自己的远程集中管理平台.zip

    本项目“linux下集中配置管理工具,使用python tornado框架,结合saltstack开发自己的远程集中管理平台”提供了一种解决方案。 盐堆栈(SaltStack)是一款强大的自动化运维工具,它允许用户通过简单的API接口远程...

    毕业设计:基于python tornado 框架开发的果蔬采购配货系统.zip

    这个毕业设计项目的核心是构建一个使用Python的Tornado框架来实现的果蔬采购配货系统。Tornado是一个开源的Web服务器和网络库,以其非阻塞I/O模型和异步处理能力而著名,非常适合构建高性能、高并发的网络应用,尤其...

    毕业设计:基于Python Tornado框架的PaaS平台监控中心原型系统.zip

    通过研究这个项目,学习者可以深化对Python Web开发的理解,特别是异步编程和Tornado框架的使用。此外,还可以了解到如何在PaaS环境中实现监控功能,包括收集性能指标(如CPU使用率、内存占用、网络流量等),展示...

    一个基于python tornado的GIS框架

    使用 Python 语言、Tornado Web框架、TorCMS系统开发,网站程序基于MIT协议开源,托管于 https://github.com/bukun/maplet; WebGIS部分后台使用MapServer作为地图发布器,前端使用Leaflet JavaScript库。实现了地图...

    python+tornado开发的实例源码

    2. **Tornado框架**:Tornado的核心特性包括异步非阻塞I/O模型,使得它能够在单个线程中处理大量并发连接。此外,Tornado提供了Web服务器、HTTP客户端、模板引擎、WebSocket支持、会话管理以及错误处理等功能。 3. ...

    python tornado

    Tornado可以与Django、Flask等其他Python Web框架集成,实现优势互补,如在Flask的简单路由和模板系统之上叠加Tornado的异步能力。 通过这个项目实践,你不仅能提升Python编程技能,还能掌握异步网络编程的关键...

    基于python异步io框架Tornado,实现监控遥控命令与web网页指定按键和鼠标(屏幕)点击事件的绑定.zip

    基于python异步io框架Tornado,结合JavaScript的onkeydown事件、 jQuery的mousedown、mouseup、touchstart、touchend事件以及Ajax,实现了监控遥控命令与web网页指定按键和鼠标(屏幕)点击事件的绑定,同时也实现了...

    基于python的+tornado框架实现的一个项目管理系统源码.zip

    基于python的+tornado框架实现的一个项目管理系统源码.zip 基于python的+tornado框架实现的一个项目管理系统源码.zip 基于python的+tornado框架实现的一个项目管理系统源码.zip

    毕业设计:基于python统一权限管理系统(基于python的tornado框架).zip

    【标题】基于Python统一权限管理系统(基于Python的Tornado框架)是计算机专业毕业生在完成学业时经常选择的一个项目,它涉及到Web开发、权限管理和后端编程等多个重要领域。Tornado是一个开源的Python Web服务器和...

    Python Tornado实现WEB服务器Socket服务器共存并实现交互的方法

    Python Tornado 框架允许开发者在同一程序中同时运行Web服务器和Socket服务器,并实现它们之间的交互,这在处理实时通信和高性能网络应用时非常有用。本文将详细介绍如何使用Tornado来构建这样的系统。 首先,我们...

    【Souvenir】Python 使用 Tornado 框架实现 WebHook 自动部署 Git-gohook.zip

    【标题】中的“Python 使用 Tornado 框架实现 WebHook 自动部署 Git-gohook”揭示了这个项目的核心内容,即使用 Python 编程语言,结合 Tornado Web 框架来创建一个 WebHook 服务,该服务能够自动响应 Git 仓库的...

    Python-一个基于TornadoWeb框架的简单的RESTFulAPI库

    在Tornado框架上构建RESTful API库,可以充分利用其异步特性,提高服务的响应速度和并发能力。开发者可以利用Tornado的`tornado.web`模块创建处理HTTP请求的类,定义各种HTTP方法的处理函数,以及使用`tornado....

    tornado python web开发

    Tornado框架和服务器一起组成一个WSGI的全栈替代品。单独在WSGI容器中使用tornado网络框架或者 tornaod http服务器,有一定的局限性,为了最大化的利用tornado的性能,推荐同时使用tornaod的网络框架 心 和HTTP...

    股票分析系统源码,基于python,tornado框架.zip

    这个特定的源码是基于Python编程语言实现的,利用了Tornado框架,一个轻量级且高效的异步网络库。下面将详细介绍这个系统可能包含的关键知识点和相关技术。 首先,Python是当今最流行的编程语言之一,尤其在数据...

    基于 python tornado 框架开发的果蔬采购配货系统

    Python使用技巧,实战应用...详细介绍了一些Python框架的各种功能和模块,以及如何使用Python进行GUI开发、网络编程和跨平台应用开发等。 适用于初学者和有经验的开发者,能够帮助你快速上手JPython并掌握其高级特性。

Global site tag (gtag.js) - Google Analytics