zoukankan      html  css  js  c++  java
  • Tornado之模板基础

    Tornado之模板基础

    import tornado
    import tornado.ioloop
    import tornado.web
    import tornado.httpserver
    import time
    import tornado.options
    from tornado.options import options,define
    define("port",default=8080,help="run port",type=int)
    
    class MainHandler(tornado.web.RequestHandler):
        def get(self):
            self.write("我在下面!<br>")
            self.render('01in_out.html')
    
        def post(self, *args, **kwargs):
            name = self.get_argument("name","no")
            #self.write(name)
            urllist = [
                ('http://www.shiguangkey.com/',"课堂"),
                ('http://www.baidu.com/',"百度"),
                ('http://www.zhihu.com/',"知乎")
            ]
    
            atga ="""
                <a href="http://www.baidu.com/" target="_blank"> __百度</a><br>     
            """
            ##模板转义,尖括号被变成其他的了
            self.render("02template.html",      ##跳转到02template.html页面
                        username = name,   ###不定长参数,字典传参  实在动态的往页面填入数据
                        time=time,
                        urllist = urllist,
                        atga = atga
                        )
    
    application = tornado.web.Application(
          handlers = [
              (r"/tem", MainHandler),
    
          ],
          template_path = 'templates',  #在 application 中配置模板文件和静态文件的路径:
          static_path='static',    #引入静态文件
          #autoescape = None,    #整个项目 全局去掉转义
          debug=True
      )
    
    if __name__ =="__main__":
        tornado.options.parse_command_line()
        http_server=tornado.httpserver.HTTPServer(application)
        http_server.listen(options.port)
        tornado.ioloop.IOLoop.instance().start()
    

    下面看前端02template.html文件代码:

    <!DOCTYPE html>
    {# autoescape None #}
    <!-- 对模板级别取消转义 加% 此处为做笔记注释掉-->
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>template</title>
        <style>
            * {
                margin: 0;
                padding: 0;
            }
            body{
                background: blanchedalmond;
            }
        </style>
    </head>
    <body>
        hello  {{username}}
        <br>
        {{1+1}}
        <br>
        {{a=time.time()}}
    <!--大括号里面可以运行python的表达式-->
        <br>
    {% if username != 'no' %}
        欢迎 {{ username }}登录
    {% else %}
            请登录!
    {% end %}
         <br>
    <!--大括号加%是模板的指令     模板的符号       end结束-->
        <!--{# a=time.time() #}  注释应该里面这样   -->
        <br>
    {{!1+1 }}
    <!--上面这样可以原样打印出源码,语句不执行-->
        <br>
    {% for i in urllist %}
        {{ i }}
        <a href="{{ i[0] }}" target="_blank"> {{i[1]}} </a><br>
    {% end %}
        <br>
    
    <!--在模板里面声明变量,用set 声明与修改-->
    {% set a = 0 %}
    {% while a<5 %}
        {{ a }}<br>
        {% set a +=1 %}
    {% end %}
        <br>
    
    {{ atga }} 转义
        <br>
    {% raw atga %}  局部去掉转义
    <!--  前面加上raw就去掉转义,就不会把尖括号变成其他的了 -->
        <br>
    {{ escape(atga) }}
    <!--开启模板不转义之后,escape(atga) 对部分进行转义-->
        <br>
    
    {% if username != 'no' %}
        欢迎 {{ username }}登录
        <img src="{{ static_url('images/2.jpg') }}" width="200" height="200">
        <img src="static/images/3.jpg" width="200" height="200">
        <!--此处的static会自动寻找变量,注意static文件的引入方式-->
    {% else %}
            请登录!
    {% end %}
    
    </body>
    </html>
    • 部分代码来自—-潭州课堂
  • 相关阅读:
    SQL CHECKOUT
    Adobe CS4 " Licensing for this product has expired " FIX!!!
    sizeof()用法汇总
    Command
    EXP_FULL_DATABASE,IMP_FULL_DATABASE,DBA,CONNECT,RESOURCE
    inet_addr函数处理IP地址需要注意的问题 (转)
    Oracle:外键关联导致数据无法删除
    三范式
    Wireshark界面上展开数据帧
    我的HTML学习记录(三)
  • 原文地址:https://www.cnblogs.com/shuai06/p/12397529.html
Copyright © 2011-2022 走看看