zoukankan      html  css  js  c++  java
  • 第二百五十八节,Tornado框架-逻辑处理get()方法和post()方法,初识模板语言

    Tornado框架-逻辑处理get()方法和post()方法,初识模板语言

    Tornado框架,逻辑处理里的get()方法,和post()方法

    get()方法,处理get方式的请求
    post()方法,处理post方式的请求

    self.get_argument()接收get方式或post方式请求传值,参数是要接收值的名称,如表单传值

    接收表单数据

    #!/usr/bin/env python
    #coding:utf-8
    
    import tornado.ioloop
    import tornado.web                              #导入tornado模块下的web文件
    
    #逻辑处理
    class MainHandler(tornado.web.RequestHandler):  #定义一个类,继承tornado.web下的RequestHandler类
        def get(self):                              #get()方法,接收get方式请求
            self.render("cshi.html")                #显示cshi.html文件
    
        def post(self, *args, **kwargs):            #post()方法,接收post方式请求
            name = self.get_argument('xxx')         #self.get_argument()方法,接收post方式提交name名称为xxx的值
            print(name)
            self.render("cshi.html")                #显示cshi.html文件
    
    
    settings = {                                    #html文件归类配置,设置一个字典
        "template_path":"template",                 #键为template_path固定的,值为要存放HTML的文件夹名称
        "static_path":"static",                     #键为static_path固定的,值为要存放js和css的文件夹名称
    }
    
    
    #路由映射
    application = tornado.web.Application([         #创建一个变量等于tornado.web下的Application方法
        (r"/index", MainHandler),                   #判断用户请求路径后缀是否匹配字符串index,如果匹配执行MainHandler方法
    ],**settings)                                   #将html文件归类配置字典,写在路由映射的第二个参数里
    
    if __name__ == "__main__":
        #内部socket运行起来
        application.listen(8888)                    #设置端口
        tornado.ioloop.IOLoop.instance().start()

    html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <!--注意js和css文件路径配置后必须在引入路径里加上配置文件夹名称-->
        <link rel="stylesheet" href="static/s1.css">
    </head>
    <body>
        <h1>表单提交</h1>
        <form method="post" action="/index">
            <input type="text" name="xxx"/>
            <input type="submit" value="提交"/>
        </form>
    </body>
    </html>

    表单提交值,接收表单值并传入html模板语言渲染到页面

    self.render()方法,参数1向用户请求打开指定html文件,参数2向html文件传入值到模板语言渲染

    模板语言

    {{...}}html模板语言,接收self.render()方法传值的变量或一个值
    {%...%}{%end%}在html渲染代码块

    #!/usr/bin/env python
    #coding:utf-8
    
    import tornado.ioloop
    import tornado.web                              #导入tornado模块下的web文件
    
    BAODZHI = []                                    #设置一个全局变量列表。来接收表单的值
    
    #逻辑处理
    class MainHandler(tornado.web.RequestHandler):  #定义一个类,继承tornado.web下的RequestHandler类
        def get(self):                              #get()方法,接收get方式请求
            self.render("cshi.html",zhi = BAODZHI)  #显示cshi.html文件,将BAODZHI全局传到html模板语言进行渲染
    
        def post(self, *args, **kwargs):            #post()方法,接收post方式请求
            name = self.get_argument('xxx')         #self.get_argument()方法,接收post方式提交name名称为xxx的值
            BAODZHI.append(name)                    #将每次接收到的表单值,放入全局变量列表
            print(name)
            self.render("cshi.html",zhi = BAODZHI)  #显示cshi.html文件,将BAODZHI全局传到html模板语言进行渲染
    
    
    settings = {                                    #html文件归类配置,设置一个字典
        "template_path":"template",                 #键为template_path固定的,值为要存放HTML的文件夹名称
        "static_path":"static",                     #键为static_path固定的,值为要存放js和css的文件夹名称
    }
    
    
    #路由映射
    application = tornado.web.Application([         #创建一个变量等于tornado.web下的Application方法
        (r"/index", MainHandler),                   #判断用户请求路径后缀是否匹配字符串index,如果匹配执行MainHandler方法
    ],**settings)                                   #将html文件归类配置字典,写在路由映射的第二个参数里
    
    if __name__ == "__main__":
        #内部socket运行起来
        application.listen(8888)                    #设置端口
        tornado.ioloop.IOLoop.instance().start()

    html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <!--注意js和css文件路径配置后必须在引入路径里加上配置文件夹名称-->
        <link rel="stylesheet" href="static/s1.css">
    </head>
    <body>
        <h1>表单提交</h1>
        <form method="post" action="/index">
            <input type="text" name="xxx"/>
            <input type="submit" value="提交"/>
        </form>
        <h1>展示内容</h1>
        <ul>
            {% for i in zhi %}
            <li>{{i}}</li>
            {% end %}
        </ul>
    </body>
    </html>

    原理图

  • 相关阅读:
    02/Oct/2019:11:55:28 类型的时间转换为
    Flume 实时获取日志内容插入MySQL
    MySQL UTC时间转北京时间 | convert_tz()函数
    使用kettle实现循环
    python 获取系统环境变量 os.environ and os.putenv
    Python
    linux如何判断上一条命令执行是否正确
    局域网两台主机通过网络共享文件
    Kettle(Pentaho)实现web方式远程执行job或transformation
    kettle发送邮件 运行日志
  • 原文地址:https://www.cnblogs.com/adc8868/p/6850850.html
Copyright © 2011-2022 走看看