全局参数的定义、存储、转换
定义参数
利用tornado.options.define()函数,其中参数包括name, default(默认值), type(变量类型,str,int, float等),multiple(设置变量是否可以为多个值,默认是fault),help(选项变量的帮助提示信息)
用options.define()函数定义的参数,都会变成tornado.options.options的属性,比如我定义了个port变量,使用时就是tornado.options.options.port
配置tornado服务器对象的三种方法
1. 命令行获取
程序第一行加上
tornado.options.parse_command_line()
命令行
python server.py --port=9000 --content=happy, good, nice
2. 配置文件
程序第一行加上
tornado.options.parse_config_file("config")
config是一个普通的文本文件,里面写
port=9000
content=[happy, good, nice]
3. 新建一个config.py
此时这个py文件相当于一个模块被import进来,就不用import tornado.options了
config.py里定义一个字典
options={
"port" = 8080
"list" = ["happy", "good", "nice"]
}
tornado.httpserver
首先,接昨天的那个代码
app.listen(port)这个函数实现的是:返回http server对象,并且绑定并监听指定port。
如果单单只想得到一个http server,需要import tornado.httpserver。这个模块顾名思义,就是实现和http服务器有关的功能。
httpServer=tornado.httpserver.HTTPServer(app) #1. 返回http server对象
接着绑定并监听指定端口
httpServer.listen(80) #2. 监听80端口
上述两行实现的功能=
app.listen(80)
开启多进程
httpServer.bind(9000)
httpServer.start(5) #start(self,num_process)
然鹅我的代码运行时遇到了 module 'os' has no attribute 'fork' 的错误,如下图(网突然不行了,上传不上来,算了)
百度结果是
fork这个系统命令,只在linux中才有用,如果你是在windows, win7、winxp中运行的话就会出错。所以把上面的python 文件拷贝到linux的系统中再运行就没问题了。
哈哈哈哈哈神奇哦。也就是说windows下的tornado不能实现多线程???
今天的学习就是酱!明天继续努力吼~
网友评论