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()获得。

  1. greeting = self.get_argument('greeting', 'Hello')

  2. 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/后的浏览器界面:

向方框中输入替换后的字符;

最后显示的界面:

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值