码迷,mamicode.com
首页 > 其他好文 > 详细

tornado的学习——第二章(模板与表单)

时间:2015-09-08 20:00:42      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:

  链接:http://demo.pythoner.com/itt2zh/ch2.html

  来到了第二章;模板与表单

 1 # -*- coding:utf-8 -*-
 2 
 3 __author__ = roy
 4 
 5 import os.path
 6 
 7 import tornado.httpserver
 8 import tornado.ioloop
 9 import tornado.options
10 import tornado.web
11 
12 from tornado.options import define, options
13 
14 define("port", default=8000, help="run on the given port", type=int)
15 
16 
17 class IndexHandler(tornado.web.RequestHandler):
18     def get(self):
19         self.render(index.html)
20 
21 
22 class PoemPageHandler(tornado.web.RequestHandler):
23     def post(self):
24         noun1 = self.get_argument(noun1)
25         noun2 = self.get_argument(noun2)
26         verb = self.get_argument(verb)
27         noun3 = self.get_argument(noun3)
28         self.render(poem.html, roads=noun1, wood=noun2, made=verb,
29                     difference=noun3)
30 
31 
32 if __name__ == __main__:
33     tornado.options.parse_command_line()
34     app = tornado.web.Application(
35         handlers=[(r/, IndexHandler), (r/poem, PoemPageHandler)],
36         # 模板的路径
37         template_path=os.path.join(os.path.dirname(__file__), "templates")
38     )
39     # 服务器
40     http_server = tornado.httpserver.HTTPServer(app)
41     http_server.listen(options.port)
42     tornado.ioloop.IOLoop.instance().start()

 (1)os.path

template_path=os.path.join(os.path.dirname(__file__), "templates"):获取templates的路径

os.path.dirname(__file__):输出本文件的完整路径

os.path.join:链接两个文件名地址

(2)render:渲染模板

 1 <!DOCTYPE html>
 2 <html>
 3     <head><title>Poem Maker Pro</title></head>
 4     <body>
 5         <h1>Enter terms below.</h1>
 6         <form method="post" action="/poem">
 7         <p>Plural noun<br><input type="text" name="noun1"></p>
 8         <p>Singular noun<br><input type="text" name="noun2"></p>
 9         <p>Verb (past tense)<br><input type="text" name="verb"></p>
10         <p>Noun<br><input type="text" name="noun3"></p>
11         <input type="submit">
12         </form>
13     </body>
14 </html>

 

 

 1 <!DOCTYPE html>
 2 <html>
 3     <head><title>Poem Maker Pro</title></head>
 4     <body>
 5         <h1>Your poem</h1>
 6         <p>Two {{roads}} diverged in a {{wood}}, and I—<br>
 7 I took the one less travelled by,<br>
 8 And that has {{made}} all the {{difference}}.</p>
 9     </body>
10 </html>

 

(3)tornado的变量里面可以带表达式;标签基本是一样的

 

(4)static_url 生成静态的 URL

 1 # -*- coding:utf-8 -*-
 2 
 3 import os.path
 4 import random
 5 
 6 import tornado.httpserver
 7 import tornado.ioloop
 8 import tornado.options
 9 import tornado.web
10 
11 from tornado.options import define, options
12 
13 define("port", default=8000, help="run on the given port", type=int)
14 
15 
16 class IndexHandler(tornado.web.RequestHandler):
17     def get(self):
18         self.render(index.html)
19 
20 
21 class MungedPageHandler(tornado.web.RequestHandler):
22     def map_by_first_letter(self, text):
23         mapped = dict()
24         for line in text.split(\r\n):
25             for word in [x for x in line.split( ) if len(x) > 0]:
26                 if word[0] not in mapped: mapped[word[0]] = []
27                 mapped[word[0]].append(word)
28         return mapped
29 
30     def post(self):
31         source_text = self.get_argument(source)
32         text_to_change = self.get_argument(change)
33         source_map = self.map_by_first_letter(source_text)
34         change_lines = text_to_change.split(\r\n)
35         self.render(munged.html, source_map=source_map, change_lines=change_lines,
36                     choice=random.choice)
37 
38 
39 if __name__ == __main__:
40     tornado.options.parse_command_line()
41     app = tornado.web.Application(
42         handlers=[(r/, IndexHandler), (r/poem, MungedPageHandler)],
43         template_path=os.path.join(os.path.dirname(__file__), "templates"),
44         # 静态文件的路径
45         static_path=os.path.join(os.path.dirname(__file__), "static"),
46         # debug 开启
47         debug=True
48     )
49     http_server = tornado.httpserver.HTTPServer(app)
50     http_server.listen(options.port)
51     tornado.ioloop.IOLoop.instance().start()

 

tornado的学习——第二章(模板与表单)

标签:

原文地址:http://www.cnblogs.com/IDomyself/p/4792518.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!