面面观 | 使用python tornado web进行开发
Posted 极客脑司机
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面面观 | 使用python tornado web进行开发相关的知识,希望对你有一定的参考价值。
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,总结
tornado 还是非常简单的使用的。 做web开发的时候java并不是唯一的解决。其他的像python和golang也是可以做开发的。 并且效率也挺高的,使用合适的技术解决问题就可以了。 剩下的时间下班早点回家了。
做一个股票系统都使用pandas,numpy,所以没有必要再使用其他语言开发web系统了。用python的 tornado 就可以了。
以上是关于面面观 | 使用python tornado web进行开发的主要内容,如果未能解决你的问题,请参考以下文章
面面观 | 使用python 连接数据库,插入并查询数据--link