如何将参数从龙卷风传递到js文件而不是html? [英] How to pass arguments from tornado to a js file but not html?
本文介绍了如何将参数从龙卷风传递到js文件而不是html?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在服务器中,我使用参数渲染模板,如下所示:
In the server I render a template with an argument, like this:
self.render('templates/test.html', names="['Jane', 'Tom']")
我成功得到了它位于< script>
的 test.html
中:
And I successfully got it in the <script>
of test.html
by this:
var N = "{{ names }}";
现在我要分开 js代码
和 html
:
<script type="text/javascript" src="static/test.js"></script>
但是当我把 N ={{names}}时失败了该js文件中的
。
谁能告诉我该如何处理?谢谢!
Can anyone tell me what to do with that ? Thanks !
推荐答案
您可以创建从HTML文件中调用的setter函数,以便传递参数:
You can create setter function to be called from HTML file to have argument passed:
$ tree
.
├── static
│ └── scripts
│ └── test.js
├── templates
│ └── index.html
└── test.py
龙卷风代码:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import os.path
import tornado.httpserver
import tornado.ioloop
import tornado.options
import tornado.web
from tornado.options import define, options
define("port", default=8000, help="run on the given port", type=int)
class IndexHandler(tornado.web.RequestHandler):
def get(self):
self.render('index.html', test="Hello, world!")
if __name__ == '__main__':
tornado.options.parse_command_line()
app = tornado.web.Application( handlers=[
(r'/', IndexHandler)],
static_path=os.path.join(os.path.dirname(__file__), "static"),
template_path=os.path.join(os.path.dirname(__file__), "templates"))
http_server = tornado.httpserver.HTTPServer(app)
http_server.listen(options.port)
tornado.ioloop.IOLoop.instance().start()
模板:
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<script src="{{ static_url('scripts/test.js') }}" type="application/javascript"></script>
</head>
<body>
<input type="button" onclick="show_test()" value="alert" />
<script type="application/javascript">
set_test("{{test}}");
</script>
</body>
</html>
JavaScript文件:
JavaScript file:
/* test.js */
var test = ""
function set_test(val)
{
test=val
}
function show_test()
{
alert(test);
}
这篇关于如何将参数从龙卷风传递到js文件而不是html?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文