python后端框架之flask02

1.模板 - Templates
    1.什么是模板
        模板,在Flask中就是允许给用户看的网页,动静结合的
        动:允许包含服务器端的动态内容,如:变量,标签,过滤器,
        静:纯HTML,CSS以及JavaScript的内容

        在Flask中,模板是依赖于Jinja2的模板引擎
        Jinja官网:http://jinja.pocoo.org/
    2.模板的设置
        默认情况下,Flask会在程序的主文件夹中会搜索一个templates的目录来作为模板的存放位置

        需要手动的在程序中创建一个 templates 目录,并将所有的模板文件(html)都存放进去
    3.模板的渲染
        作用:在视图中,将模板文件(**.html)先变成字符串,再响应给浏览器
        语法:
            from flask import render_template
            return render_template('xxx.html')
    4.模板中的语法(重点)
        1.变量
            变量是一种特殊的占位符,告诉模板引擎,该位置的值是从渲染模板时的哪个数据中获取出来的
            语法:
                1.在视图中
                    @app.route('/xxx')
                    def xxx():
                        return render_template('xxx.html',变量1=值1,变量2=值2,... ...)

                        return render_template('01-template.html',name='wangwc',age=35)
                2.在模板中
                    {{变量名}}
                    01-template.html 中:
                        {{name}}
                练习:
                    创建 /03-template 路由,能够渲染 03-template.html模板,并在模板中输出以下内容:
                    歌名 : <<绿光>>
                    作词 : 宝强
                    作曲 : 乃亮
                    演唱 : 羽凡

            允许传递到模板中作为变量的数据类型:
                字符串,整数,小数,
                列表,元组,字典
                对象
        2.过滤器
            1.什么是过滤器
                在变量输出前,允许修改变量的值,再进行输出
            2.语法
                {{变量|过滤器(参数)}}

                常用过滤器:
                    过滤器名               说明
                    capitalize             首字符变大写,其他变小写
                    lower                  将值转换为小写
                    upper                  将值转换为大写
                    title                  将值中的每个单词首字符变大写
                    trim                   去掉值两端的空格
                    default('xx')          如果变量不存在,将采用default中的值作为默认输出
                    truncate(num[,bool])     截取指定长度字符串,后面使用...显示
        3.标签
            1.什么是标签
                在模板中,标签是属于服务器端内容
                每个标签表示的是不同的服务器端的功能
            2.常用标签
                1. if 标签
                    1. 基本if标签
                        {% if 条件 %}
                            if条件为真的时候,要执行的内容
                            允许是 静态内容,也允许是动态内容
                        {% endif %}
                    2. if ... else 结构
                        {% if 条件 %}
                        ...
                        {% else %}
                        ...
                        {% endif %}
                    3. if ... elif ... elif 结构
                        {% if 条件1 %}
                        ...
                        {% elif 条件2 %}
                        ...
                        {% elif 条件3 %}
                        ...
                        {% else %} -- 可选
                        ...
                        {% endif %}
                2. for 标签
                    {% for 变量 in 元组|列表|字典 %}
                        允许出现静态内容:html,css,js
                        允许出现动态内容:
                            变量 - {{}}
                            标签 - {% if %} {% endif %}
                    {% endfor %}

                    循环的内部变量 - loop
                    loop的作用:能够记载当前循环的一些相关信息
                        loop 常用属性:
                            1. index
                                作用:记录当前循环的次数,从1开始记录
                            2. index0
                                作用:同上,从0开始记录
                            3.first
                                作用:判断本次循环是否为第一次循环
                                值:True(是第一次循环) 或 False(非第一次循环)
                            4.last
                                作用:判断本次循环会否为最后一次循环
                                值:True(是最后一次循环) 或 False(非最后一次循环)
                3. macro 标签 (宏)
                    1.作用
                        相当于是在模板中声明函数
                    2.语法
                        {% macro 名(参数列表) %}
                            xxx xxx
                        {% endmacro %}
                    3.在独立的模板文件中声明宏
                        1.创建 macro.html 模板文件
                            作用:定义项目中要用到的所有的宏
                        2.在使用的网页中,导入 macro.html 模板
                            {% import 'macro.html' as macros %}
                4. include 标签        
                    将其他的模板文件包含到当前的模板文件中
                    语法:{% include 'xxx.html' %}
    5.静态文件的处理
        1.什么是静态文件
            在Flask中,不能与服务器做动态交互的文件称为静态文件
            如:图片,css,js,音视频,文档... ...
        2.静态文件的处理
            1.所有的静态文件必须放在 static 目录中
                static目录必须放在项目的根目录处
            2.所有的静态文件必须通过 /static/ 路径进行访问
                /static : 要到静态资源目录中进一步的搜索文件
                    http://localhost:5000/static/images/a.jpg


        作业:
            搭建Blog项目中的模板以及静态文件
            在 Blog 项目的基础上,实现以下功能:
            1.将所有的html页面导入到Blog项目中 -> templates
            2.将所有的静态文件(css,js,图片)导入到Blog项目中 -> static
            3.在模板中处理好所有的静态文件们
                1.首页 - /
                    访问时,能够显示 index.html 中的内容
                2.列表页 - /list
                    访问时,能够显示 list.html 中的内容
                3.发布页 - /release
                    访问时,能够显示 release.html 中的内容
                4.详情页 - /info/id
                    访问时,能够显示 info.html 中的内容
                    
        明天:
            1.模板 
                模板继承
            2.修改配置
            3.请求(request) 和 响应(response)


{
    'game': <__main__.Game object at 0x7f6b23add898>, 
    'dic': {'WZJ': '王昭君', 'DJ': '妲己', 'AQL': '安其拉'},
    'tup': ('蔡文姬', '名师因', '刘禅'), 
    'name': '王者荣耀', 
    'list': ['阿珂', '兰陵王', '孙悟空', '李白'], 
    'delay': 460
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值