• 第二百六十八节,Tornado框架-路由映射之二级域名支持,html模板继承以及导入


    Tornado框架-路由映射之二级域名支持,html模板继承以及导入

    二级域名路由映射
    add_handlers()设置二级域名路由映射

    注意:二级域名需要结合服务器ip绑定域名

    框架引擎

    #!/usr/bin/env python
    #coding:utf-8
    
    import tornado.ioloop
    import tornado.web                              #导入tornado模块下的web文件
    from controllers import index
    
    
    
    settings = {                                    #html文件归类配置,设置一个字典
        "template_path":"views",                    #键为template_path固定的,值为要存放HTML的文件夹名称
        "static_path":"statics",                    #键为static_path固定的,值为要存放js和css的文件夹名称
    }
    
    
    #路由映射
    #一级路由映射如localhost.com
    application = tornado.web.Application([         #创建一个变量等于tornado.web下的Application方法
        (r"/index/(?P<page>d*)", index.indexHandler),    #正则匹配访问路径,访问录index/后面可以是可以是0个或多个数字
    ],**settings)                                   #将html文件归类配置字典,写在路由映射的第二个参数里
    
    #二级域名路由映射如buy.localhost.com
    application.add_handlers('buy.localhost.com$',[
        (r"/index/(?P<page>d*)", index.buy),      #二级域名访问函数
    ])
    
    if __name__ == "__main__":
        #内部socket运行起来
        application.listen(8888)                    #设置端口
        tornado.ioloop.IOLoop.instance().start()

    逻辑处理

    #!/usr/bin/env python
    #coding:utf-8
    
    import tornado.ioloop
    import tornado.web                              #导入tornado模块下的web文件
    from pymkuai import fenye
    
    
    SHUJU = [
        {"user":"lgx","emia":"729088188@qq.com"}
    ]
    for f in range(300):
        SHUJU.append({"user": "lgx", "emia": "729088188@qq.com"})   #填充数据到300条
    
    
    #逻辑处理
    class indexHandler(tornado.web.RequestHandler):  #定义一个类,继承tornado.web下的RequestHandler类
        def get(self,page):                                              #get()方法,接收get方式请求
    
            fen_ye = fenye.fen_ye_lei(page,SHUJU,10,11,5,'/index/')       #执行分页对象
    
            if fen_ye.dang_qian_ye > fen_ye.zong_ye_ma:             #判断分页对象里的当前页码如果大于总页码
                zfchdqy = str(fen_ye.zong_ye_ma)                    #将总页码转换成字符串
                self.redirect("/index/" + zfchdqy)                  #跳转到总页码
            else:
                self.render("index.html",dqy=fen_ye.dang_qian_ye,shuju=fen_ye.shu_ju_fan_wei(),yem=fen_ye.xian_shi_ye_ma())  # 显示index.html文件,传递当前页码,传递数据,传递分页
    
    
        def post(self,page):
            user = self.get_argument("user")            #接收用户提交的用户名
            emia = self.get_argument("emia")            #接收用户提交的邮箱
            temp = {"user":user,"emia":emia}            #将邮箱和用户名组合成字典,
            SHUJU.append(temp)                          #将字典追加到SHUJU全局变量
            self.redirect("/index/" + page)             #跳转到当前页面
    
    class buy(tornado.web.RequestHandler):
        def get(self):
            self.render("buy.html")

    母板继承

    母板继承就是访问的页面继承一个母板,将访问页面的内容引入到母板里指定的地方,组合成一个新页面返回给浏览器

    一般母板里都是写的一个网页里不变的地方,也就是通用的地方,被继承页(访问页)都是每个页面不同的地方,也就是将页面不同的地方引入到母板组合成一个新页面返回浏览器

    母板里一般都是网页的、头部、底部、头部底部css、头部底部js

    被继承页(访问页)里一般都是新内容,新内容的css和js

    {% extends '母板路径名称'%}访问页面继承母板
    {% block 代码块名称 %}<html代码块>{% end %}在访问页设置一个可引入到母板的html代码块
    {% block 代码块名称 %}{% end %}在母板,引入访问页对应的html代码块

    框架引擎

    #!/usr/bin/env python
    #coding:utf-8
    
    import tornado.ioloop
    import tornado.web                              #导入tornado模块下的web文件
    from controllers import index
    
    
    
    settings = {                                    #html文件归类配置,设置一个字典
        "template_path":"views",                    #键为template_path固定的,值为要存放HTML的文件夹名称
        "static_path":"statics",                    #键为static_path固定的,值为要存放js和css的文件夹名称
    }
    
    
    #路由映射
    #一级路由映射如localhost.com
    application = tornado.web.Application([         #创建一个变量等于tornado.web下的Application方法
        (r"/index/(?P<page>d*)", index.indexHandler),    #正则匹配访问路径,访问录index/后面可以是可以是0个或多个数字
        (r"/nevm/(?P<page>d*)", index.nevmHandler)
    ],**settings)                                         #将html文件归类配置字典,写在路由映射的第二个参数里
    
    
    if __name__ == "__main__":
        #内部socket运行起来
        application.listen(8888)                    #设置端口
        tornado.ioloop.IOLoop.instance().start()

    逻辑处理

    #!/usr/bin/env python
    #coding:utf-8
    
    import tornado.ioloop
    import tornado.web                              #导入tornado模块下的web文件
    from pymkuai import fenye
    
    
    
    #逻辑处理
    class indexHandler(tornado.web.RequestHandler):  #定义一个类,继承tornado.web下的RequestHandler类
        def get(self,page):                                              #get()方法,接收get方式请求
            self.render("index.html")                # 显示html文件,
    
    class nevmHandler(tornado.web.RequestHandler):  #定义一个类,继承tornado.web下的RequestHandler类
        def get(self,page):                                              #get()方法,接收get方式请求
            self.render("nevm.html")                # 显示html文件,

    muban.html 母板html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>测试网站</title>
        <link rel="stylesheet" href='{{static_url("muban.css")}}'>
        {% block css %}{% end %}                                        <!--接收被继承页面的css连接-->
    </head>
    <body>
    <div id="tou">头部</div>
    
    {% block neir %}{% end %}                                           <!--接收被继承页面的内容区块-->
    
    <div id="dibu">底部</div>
    </body>
    </html>

    index.html 访问页(被继承页)

    {% extends 'muban.html'%}                                       <!--继承母板muban.html-->
    
    {% block css %}                                                 <!--导入css到继承页面指定地方-->
    <link rel="stylesheet" href='{{static_url("index.css")}}'>
    {% end %}
    
    {% block neir %}                                                <!--导入内容区块到继承页面指定地方-->
    <div id="neir">首页内容</div>
    {% end %}

    nevm.html 访问页(被继承页)

    {% extends 'muban.html'%}                                       <!--继承母板muban.html-->
    
    {% block css %}                                                 <!--导入css到继承页面指定地方-->
    <link rel="stylesheet" href='{{static_url("nevm.css")}}'>
    {% end %}
    
    {% block neir %}                                                <!--导入内容区块到继承页面指定地方-->
    <div id="neir">内页内容</div>
    {% end %}

    index.html 返回浏览器

    nevm.html 返回浏览器

    html导入

    将一个写有html代码块的文件,导入到另一个html文件中显示

    一般用于导入小区块

    被导入文件也支持模板语言

    {% include '被导入区块html文件路径名称' %}写在需要导入区块的html文件里,将一个html文件导入到当前文件显示,

    当前html

    {% extends 'muban.html'%}                                       <!--继承母板muban.html-->
    
    {% block css %}                                                 <!--导入css到继承页面指定地方-->
    <link rel="stylesheet" href='{{static_url("index.css")}}'>
    <link rel="stylesheet" href='{{static_url("qukuai.css")}}'>
    {% end %}
    
    {% block neir %}                                                <!--导入内容区块到继承页面指定地方-->
    <div id="neir">
        首页内容
        {% include 'qukuai.html' %}
    </div>
    {% end %}

    被导入html

    <div id="qukuai">
        区块内容
    </div>

  • 相关阅读:
    uva624 CD (01背包+路径的输出)
    算法:全排列
    Android使用Intent实现拨打电话的动作
    Java并发编程从入门到精通 张振华.Jack --我的书
    《算法导论》— Chapter 12 二叉查找树
    Java中arraylist和linkedlist源代码分析与性能比較
    Cg入门14:Vertex Shader
    Nucleus PLUS的启动、执行线程和中断处理
    Unity Shaders and Effects Cookbook (3-5) 金属软高光
    EasyDarwin开发出相似于美拍、秒拍的短视频拍摄SDK:EasyVideoRecorder
  • 原文地址:https://www.cnblogs.com/adc8868/p/6884687.html
Copyright © 2020-2023  润新知