之前简单说了一下python tornado的安装,有小伙伴已经迫不及待想要做出一些成果了。接下来,小编就带大家学习一下如何启动和配置,一起来找高手吧。
如果你一直在关注这个系列,第一步你应该很熟悉。
$ mkdir tornado_todo
$ cd tornado_todo
$ pipenv install --python 3.6
$ pipenv shell
(tornado-someHash) $ pipenv install tornado
创建一个 setup.py 文件来安装我们的应用程序相关的东西:
(tornado-someHash) $ touch setup.py
# setup.py
from setuptools import setup, find_packages
requires = [
'tornado',
'tornado-sqlalchemy',
'psycopg2',
]
setup(
name='tornado_todo',
version='0.0',
description='A To-Do List built with Tornado',
author='<Your name>',
author_email='<Your email>',
keywords='web tornado',
packages=find_packages(),
install_requires=requires,
entry_points={
'console_scripts': [
'serve_app = todo:main',
],
},
)
因为Tornado不需要任何外部配置,我们可以直接编写Python代码让程序运行起来。让我们创建 todo 目录并用我们需要的前几个文件填充它。
todo/
__init__.py
models.py
views.py
就像 Flask 和 Pyramid 一样,Tornado 也有一些基本配置,放在 __init__.py 中。从 tornado.web,我们将导入 Application 对象,它将处理路由和连接视图,包括数据库(当我们到达那里时更多),以及运行 Tornado 应用程序所需的任何其他设置。
# __init__.py
from tornado.web import Application
def main():
"""Construct and serve the tornado application."""
app = Application()
与 Flask 一样,Tornado 主要是一个 DIY 框架。在构建我们的应用程序时,我们必须设置应用程序实例。由于 Tornado 使用自己的 HTTP 服务器为应用程序提供服务,因此我们必须设置如何为应用程序提供服务。首先,在 tornado.options.define 中定义要监听的端口。然后我们实例化 Tornado 的 HTTPServer,将 Application 对象的实例作为参数传递给它。
# __init__.py
from tornado.httpserver import HTTPServer
from tornado.options import define, options
from tornado.web import Application
define('port', default=8888, help='port to listen on')
def main():
"""Construct and serve the tornado application."""
app = Application()
http_server = HTTPServer(app)
http_server.listen(options.port)
当我们使用 define 函数时,我们最终会在选项对象上创建属性。第一个参数位置的任何内容都是属性的名称,分配给默认关键字参数的任何内容都将是该属性的值。
例如,如果我们将属性命名为 potato 而不是
port
,我们可以通过
options.potato
访问它的值。
在 HTTPServer 上调用
listen
不启动服务器。我们必须更进一步,找到一个可以侦听请求并返回响应的工作应用程序,我们需要一个输入输出循环。幸运的是,
Tornado
以
tornado.ioloop.IOLoop
的形式提供了开箱即用的功能。
# __init__.py
from tornado.httpserver import HTTPServer
from tornado.ioloop import IOLoop
from tornado.options import define, options
from tornado.web import Application
define('port', default=8888, help='port to listen on')
def main():
"""Construct and serve the tornado application."""
app = Application()
http_server = HTTPServer(app)
http_server.listen(options.port)
print('Listening on http://localhost:%i' % options.port)
IOLoop.current().start()
我喜欢某种打印语句来告诉我何时提供应用程序,这是我习惯的做法。如果你愿意,你可以省略打印。
我们以IOLoop.current().start() 开始我们的
I/O
循环。让我们进一步讨论输入,输出和异步性。
以上就是python tornado启动和配置的方法。
更多Python学习推荐:
。
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ python函数式编程详细介绍11/14
- ♥ python中if-elif-else语句的使用注意事项09/03
- ♥ Python字符串操作常用知识点(三)12/08
- ♥ python中Queue和管道的区别10/18
- ♥ python amd64的含义09/30
- ♥ python中numpy数据类型转换的方法09/29
内容反馈