PythonStock(3):使用python tornado web进行开发

41 篇文章 314 订阅
30 篇文章 151 订阅

前言

使用python开发一个股票项目。
项目地址:
https://github.com/pythonstock/stock
相关资料:
http://blog.csdn.net/freewebsys/article/category/7076584
主要使用开发语言是python。
使用的lib库是pandas,tushare,TensorFlow,tornado等。

本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/76680525 未经博主允许不得转载。
博主地址是:http://blog.csdn.net/freewebsys

1,使用tornado


因为要开发股票系统,都是使用python进行开发的。
所以也要使用一个python的web框架。选择了那么多,还是找了一个性能比好的。

毕竟做的并不是一个很admin系统的项目。django 感觉还是不适合。

扩展起来,感觉上tornado 性能会更强悍。

2,博客demo


一个非常简单的博客系统:
https://github.com/tornadoweb/tornado/tree/master/demos/blog

发现根本就不支持很久不更新的demo了。而且我的环境使用的是python3的。
tensorflow 啥的都是按照python3 的进行的。语法还是严格的。

需要稍微的修改下:

sed -i -e 's/itertools\.izip/zip/g' 
    /usr/local/lib/python3.5/dist-packages/torndb.py

因为python3 的lib库没有 itertools,直接用zip替换掉。

3,设置数据


设置路由和配置。


class Application(tornado.web.Application):
    def __init__(self):
        handlers = [#设置路由
            (r"/", HomeHandler),
            (r"/stock/api_data", GetStockDataHandler),
            (r"/stock/data", GetStockHtmlHandler),
        ]
        settings = dict(#配置
            template_path=os.path.join(os.path.dirname(__file__), "templates"),
            static_path=os.path.join(os.path.dirname(__file__), "static"),
            xsrf_cookies=True,
            #cookie加密
            cookie_secret="027bb1b670eddf0392cdda8709268a17b58b7",
            debug=True,
        )
        super(Application, self).__init__(handlers, **settings)
        # Have one global connection to the blog DB across all handlers
        self.db = torndb.Connection(
            host=MYSQL_HOST, database=MYSQL_DB,
            user=MYSQL_USER, password=MYSQL_PWD)


class BaseHandler(tornado.web.RequestHandler):
    @property
    def db(self):
        return self.application.db

使用Handler类:


class HomeHandler(BaseHandler):
    @gen.coroutine
    def get(self):
        self.render("index.html", entries="hello")

设置render。第一个参数是模板页面,第二个是数据。

在handler里面可以直接使用数据的链接

        web_size = self.db.query(" SELECT count(1) as num FROM USER_INFO ")

页面中显示:

    显示对象数据
    {{ stockWeb.name }}

    循环显示list数据
    {% for column_name in stockWeb.column_names %}
        <th>{{ column_name }}</th>
    {% end %}

项目结构:

---web
    +---static
    +---templates
    +---main.py

static 是静态资源目录。
templates是模板文件。配合数据显示。

启动main函数:


def main():
    tornado.options.parse_command_line()
    http_server = tornado.httpserver.HTTPServer(Application())
    port = 9999
    http_server.listen(port)
    tornado.ioloop.IOLoop.current().start()


if __name__ == "__main__":
    main()

4,总结


本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/76680525 未经博主允许不得转载。
博主地址是:http://blog.csdn.net/freewebsys

tornado 还是非常简单的使用的。
做web开发的时候java并不是唯一的解决。其他的像python和golang也是可以做开发的。
并且效率也挺高的,使用合适的技术解决问题就可以了。
剩下的时间下班早点回家了。

做一个股票系统都使用pandas,numpy,所以没有必要再使用其他语言开发web系统了。用python的 tornado 就可以了。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值