tornado 表单
1:在tornado框架运用过程中,需要初步了解post、get、get_argument()和self.render()的含义。
1.1:get 和post的简单理解 :
get和post来源于http协议,Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE,分 别对应查改增删四种操作。get 的获取(得到)信息,不会对信息修改,而post对应的是增加(添加)数据。get用于直接读取,post用于修改数据。
因此对网页进行刷新时,get读取的信息不会被修改,缓存服务器也会缓存;但post的信息不会被服务器缓存。
1.2:get_argument()
此函数的调用频率极高,必须熟练掌握。tornado的get和post提交的参数都可以通过self.get_argument()获得。
-
greeting = self.get_argument('greeting', 'Hello')
-
greeting = self.get_argument('greeting'')#此种情况为默认情况
1.3: self.render()
用这个方法引入相应的模板。
self.render("index.html")
显示index.html模板,但是此时并没有向模板网页传递任何数据,仅仅显示罢了。下面一个:
self.render("user.html",username=user_name,email=user_email,website=user_website,language=user_language)
2:python代码:
import os.path
import tornado.web
import tornado.httpserver
import tornado.options
import tornado.ioloop
from tornado.options import options,define
define("port",default=8000,help="on the given help",type="int")
class IndexHandlers(tornado.web.RequestHandler):
def get(self):
self.render('index.html')
class PagePoemHandler(tornado.web.RequestHandler):
def post(self):
noun1=self.get_argument('noun1')
noun2=self.get_argument('noun2')
verb = self.get_argument('verb')
noun3 = self.get_argument('noun3')
self.render('poem.html',roads=noun1,wood=noun2,made=verb,difference=noun3)
if __name__ == '__main__':
tornado.options.parse_command_line()
app = tornado.web.Application(
handlers=[(r'/', IndexHandlers), (r'/poem', PagePoemHandler)],
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()
注意:html代码放在templates文件下
前端代码:index.html
<!DOCTYPE html>
<html>
<head><title>Poem Maker Pro</title></head>
<body>
<h1>Enter terms below.</h1>
<form method="post" action="/poem">
<p>Plural noun<br><input type="text" name="noun1"></p>
<p>Singular noun<br><input type="text" name="noun2"></p>
<p>Verb (past tense)<br><input type="text" name="verb"></p>
<p>Noun<br><input type="text" name="noun3"></p>
<input type="submit">
</form>
</body>
</html>
poem.html
<!DOCTYPE html>
<html>
<head><title>Poem Maker Pro</title></head>
<body>
<h1>Your poem</h1>
<p>Two {{roads}} diverged in a {{wood}}, and I—<br><!br 表示换行-->
I took the one less travelled by,<br>
And that has {{made}} all the {{difference}}.</p>
</body>
</html>
输入网址:http://localhost:8000/后的浏览器界面:
向方框中输入替换后的字符;
最后显示的界面: