python-django-03

 

python-django-03

 

 

1、Django 模板(Template)
    1、什么是模板
        就是一个网页,可以被view响应给用户
        目的是为了解决复杂的显示问题
    2、模板的设置
        1、BACKEND:指定模板的搜索引擎,不用改动
        2、DIRS:指定模板所存放的目录
            DIRS=['index.temp','music.temp']
            但是,如果DIRS中为空的话,那么django会自动所有每个应用中的 templates 的文件夹作为模板管理目录
            推荐:
                1、DIRS 保持为空
                2、在每个应用中,创建一个 templates 的文件夹
        3、APP_DIRS
            True:首先从DIRS中指定的文件夹中查找模板,如果没找到指定模板的话,则再搜索templates目录
    3、模板的加载方式
        1、使用 loader 获取模板,通过HttpResponse进行响应
            from django.template import loader

            def xxx(request):
                t=loader.get_template('show.html')
                html=t.render({})
                return HttpResponse(html)
            练习:
                使用loader方式完成下列操作
                在 music 应用中,访问
                    localhost:8000/music/music_info
                在模板中显示如下效果:
                歌名 :<<小苹果>>
                作词 :筷子兄弟
                演唱 :筷子兄弟
        2、使用 render 直接加载
            return render(request,'模板名称',{})

    4、url() 的name参数
        urlpatterns = [
            url(regex,views,kwargs=None,name=None)
        ]

        name : 定义当前url的别名,允许在Template中使用该别名来找到对应的 url

        url(regex,views,name=None,name='别名')

        在Django模板中使用 name 实现连接
        {% url 'name值'%}

        练习:
            1、通过 localhost:8000/news/first
                去往 first.html
                在 first.html 中增加一个超链接,连接到 result.html.在超链接中,增加两个参数,分别都是1位以上的数字,在result.html中,将两个数字相加的结果打印输出
    5、模板的语法
        1、变量
            作用:允许将后端的数据传递给模板(html),在模板中,会根据变量的实际值进行显示

            在Django中允许传递给模板作为变量的数据类型
                数字,字符串,列表,元组,字典,函数,对象
            如何传递变量到模板中
                1、render
                    dic = {
                        '变量1':'值1',
                        '变量2':'值2',
                    }
                    return render(request,'xx.html',dic)
                2、loader
                    dic = {
                        '变量1':'值1',
                        '变量2':'值2',
                    }
                    t = loader.get_template('xx.html')
                    html=t.render(dic)
                    return HttpResponse(html)

            在模板中,获取变量的值:
                {{变量名}}
        2、标签
            1、什么是标签
                允许嵌套一些服务器端的逻辑运算到模板中。
            2、语法
                {% ... %}
            3、常用标签
                1、{%if 条件%} ... {%endif%}
                    接受 :not , and ,or
                    但是 :andor 不能同时出现
                    以下内容当成False处理:
                        空[]
                        空()
                        空{}
                        数字:0
                        空字符串
                        特殊对象:None
                2、{%if 条件%} ... {%else%} ... {%endif%}
                3、
                    {%ifequal 值1 值2%} ...{%endifequal%}

                    {%ifequal 值1 值2%} . {%else%} . {%endifequal%}
                4、
                    {%for 变量 in 列表|元组|字典%}
                    {%endfor%}
                    允许使用的内置变量(免声明):
                        forloop
                        1、forloop.counter : 记录循环的次数
                        2、forloop.counter0: 同上,但从0开始
                        3、forloop.revcounter:记录未被遍历的数量
                        4、forloop.revcounter0:同上,从0开始
                        5、forloop.first : 布尔值,标记是否为第一个项目
                        6、forloop.last : 布尔值,标记是否为最后一个项目
        3、过滤器
            1、作用
                在显示变量之前,允许对数据进行筛选或改变
            2、过滤器的语法
                {{var|过滤器}}
            3、常用过滤器
                1、{{var|upper}}
                    将var的数据变为大写
                2、{{var|lower}}
                    将var的数据变为小写
                3、{{var|add:num}}
                4、{{var|floatformat:n}}
                    将var四舍五入到 n 位小数
        4、静态文件的处理
            1、什么是静态文件
                模板中所用到的css,js,image,等一些资源文件都是静态文件
            2、Django中静态文件的处理
                需要在 settings.py中设置静态文件的访问路径 和 存储路径
                1、STATIC_URL
                    指定静态资源的访问路径
                    STATIC_URL='/static/'
                2、STATICFILES_DIRS
                    指定在开发阶段所有静态文件所在的根目录
                    STATICFILES_DIRS=(BASE_DIR,'static')
            3、访问静态资源
                1、<img src="/static/images/huiyuan.jpg">
                2、使用 {%static %}访问静态资源
                    1、模板的最顶层增加    
                        {%load static%}
                    2、使用静态资源文件时
                        <img src="{%static 'images/huiyuan.jpg' %}">


http://localhost:8000/news/first/second.html

<li {%if forloop.first%}{%endif%} >
    {{forloop.counter}}:{{h}}
 </li>

{%for h in uhobby%}
    <li {%if forloop.first%}style='color:red;'{%endif%} >
      {{forloop.counter}}:{{h}}
    </li>
{%endfor%}

 

posted on 2019-07-23 14:35  微子天明  阅读(221)  评论(0编辑  收藏  举报

导航