×

tornado静态文件

tornado静态文件(gunicorn 静态文件)

admin admin 发表于2023-03-26 23:47:13 浏览45 评论0

抢沙发发表评论

本文目录一览:

tornado怎么引入其他文件夹下的静态文件

绝对路径:dirname(__FILE__)./../js/test1.js

或者相对路径:../js/test1.js

python tornado 怎么不使用 静态文件

 可是python3.4.3里面根本就没有MySQLdb的模块,取而代之的是pymysql(已安装)

没有的模块自己安装就好。没什么不能用的。包名是这个:mysqlclient

pip install mysqlclient

tornado模板使用

首先,我们向Application对象的 init 方法传递了一个template_path参数,template_path参数告诉Tornado在哪里寻找模板文件。

index.html 存放在templates目录下。

demo2.html

self.render('index.html')

self.render('demo2.html',name='张三',age=100,sex='man')

可以将任何Python表达式放在双大括号中。Tornado将插入任何表达式计算结果值的字符串到输出中。

可以在Tornado模板中使用Python条件和循环语句,支持if、for、while和try。

语法:

Tornado在所有模板中默认提供了一些便利的函数。

向Application类的构造函数传递一个名为static_path的参数来告诉Tornado从文件系统的一个特定位置提供静态文件。

现在应用将以读取static目录下读取静态文件。

Tornado模板模块提供了一个叫作 static_url 的函数来生成static目录下文件的URL。

例如使用static目录下的style.css文件。

static_url函数会生成 /static/style.css?v=ab12 ,即:

static_url 函数创建了一个基于文件内容的 hash值 ,并将其添加到URL末尾( 查询字符串的参数v )。这个hash值确保浏览器总是加载一个文件的最新版而不是之前的缓存版本。无论是在你应用的开发阶段,还是在部署到生产环境使用时,都非常有用,因为你的用户不必再为了看到你的静态内容而清除浏览器缓存了。-tornado静态文件

注意在使用static_url函数生成静态文件路径时必须用{{ }}括起来,因为href属性引用的是一个地址。

如何使用tornado的日志文件输出

默认用 Tornado 写程序,修改完代码需要将文件上传,然后重启 Supervisord (supervisorctl reload),修改的程序才能生效。但这样比较麻烦,因为需要SSH到服务器进行重启操作。Tornado 自带的调试模式可以让我们轻松不少。-tornado静态文件

开启调试模式也很简单,只需要 import 一个模块即可。

import tornado.autoreload

现在将修改的文件上传之后,不需要再重启,修改的结果就会显示出来了。

另外也可以在 settings 加入 debug选项:

import tornado.httpserver

import tornado.ioloop

import tornado.options

import tornado.web

settings = {'debug' : True}

define("debug",default=True,help="Debug Mode",type=bool)

def main():

tornado.options.parse_command_line()

application = tornado.web.Application([

(r"/", MainHandler),

(r"/nowamagic/", NowaMagicHandler),

],**settings)

http_server = tornado.httpserver.HTTPServer(application)

http_server.listen(options.port)

tornado.ioloop.IOLoop.instance().start()

Tornado 官方教程上的 settings 是这样的:

settings = {

"cookie_secret": "61oETzKXQAGaYdkL5gEmGeJJFuYh7EQnp2XdTP1o/Vo=",

"login_url": "/login",

"xsrf_cookies": True,

}

application = tornado.web.Application([

(r"/", MainHandler),

(r"/login", LoginHandler),

], **settings)

当然也设置settings字典可以这样:

settings = dict(

cookie_secret= "61oETzKXQAGaYdkL5gEmGeJJFuYh7EQnp2XdTP1o/Vo=",

login_url= "/login",

xsrf_cookies= True,

)

settings可以设置什么?

#设置templates路径:

template_path = os.path.join(os.path.dirname(__file__), "templates")

#设置静态文件解析路径:

static_path = os.path.join(os.path.dirname(__file__), "static"),

#设置防跨站请求攻击:

xsrf_cookies = True,

#默认为False,即不可防御。

#设置登陆路径,未登陆用户在操作时跳转会用到这个参数:

login_url = "/login-do",

#默认为@tornado.web.authenticated

#设置调试模式:

debug = True,

#默认为False,即不是调试模式。

#设置cookie密钥:

cookie_secret = "dskfhisdjklagkfdklag;lkjasdklgjkldsjaklgjkldsfksdklf"

#默认为字符串"secure cookies"

#设置是否自动编码:在2.0以上需要设置此项来兼容您之前的APP

autoescape = None,

#不设置默认为自动编码。

#设置template_loader,可以从独立的路径中导入template:

template_loader=utils.ZipLoader,

#其中utils为自己定义的模块,ZipLoader是tornado.template.BaseLoader的子类。

#设置gzip压缩:

gzip=True

#设置静态路径头部:

static_url_prefix = "/mystatic/",

#默认是"/static/"

#设置静态文件处理类:

static_handler_class = MyStaticFileHandler,

#默认是tornado.web.StaticFileHandler

#设置静态文件的参数:

static_handler_args = { "key1":"value1", "key2":"value2" }

#默认为空字典。

#设置日志处理函数

log_function = your_fun,

# 日志处理函数your_fun,按照自己的意图记录日志。

调试模式的缺点是:只感知.py文件的改变,模版的改变不会加载,有些特殊的错误,比如import的错误,就会直接让服务下线,到时候还得手动重启。还有就是调试模式和 HTTPServer 的多进程模式不兼容。在调试模式下,你必须将 HTTPServer.start 的参数设为不大于 1 的数字。-tornado静态文件