• django模板语法学习(模板变量,for循环,if语句)


    首先通过django内置的模板需要达到的效果:数据加模板就形成了html页面。

    如图:

    总所周知,django的mvt模式,是属于前后端不分离的模式。所有得先在templates目录下新建一个personinfo.html文件

    如图:

    模板内容如下:

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <!--解决图片引用跨域问题-->
    <meta name="referrer" content="no-referrer">
    <title>博客信息</title>
    </head>
    <body>
    <h1>{{ blog_name }}</h1>
    <p>姓名:{{ username }}</p>
    <p>年龄:{{ age }}</p>

    <!--<p>感兴趣的技术:{{ fancy.0 }},{{ fancy.1 }},{{ fancy.2 }}</p>-->
    <!--模板for循环语法-->

    <p>感兴趣的技术
    {% for i in fancy %}
    {{ i }}|
    {% endfor %}
    </p>

    <h1>通过字典对象取值</h1>
    <a>博客地址:{{ blog.url }}</a>
    <p>头像</p>
    <img src="{{ blog.img }}">
    <h1>获取类的属性,方法值</h1>
    <p>关注数:{{ myblog.guangzhu }}</p>
    <p>粉丝数:{{ myblog.fensi }}</p>
    </body>
    </html>

    版本变量要从视图函数里面取值,通过以下方式:

    list类型:通过下标取值

    字典对象:通过.key取值

    如果是取值的是对象,就通过类名.方法名取值:

    接下来就是在应用的,views.py文件里面编写视图函数。

    如图:

    视图函数内容如下:

    # todo 个人信息
    def personinfo(request):
    
        context = {
            "blog_name":"圆觉",
            "username":"",
            "age":23,
            "fancy":["python","django","requests"],
            "blog":{"url":"https://www.cnblogs.com/xiamaojjie/",
                    "img":"https://pic.cnblogs.com/avatar/1772245/20191102152106.png",
                    }
    
        }
    
        class Myblog():
    
            def __init__(self):
    
                self.guangzhu = 3
                self.fensi = 7
    
            def guangzhu(self):
    
                return self.guangzhu
    
            def fensi(self):
    
                return self.fensi
    
        myblog = Myblog()
    
        context["myblog"] = myblog
    
    
        return render(request,"personinfo.html",context)

     render()需要传递3个参数,第一个是request,第二个是模板名称,第3个是context,传输的内容。

    for循环展示列表 内容:

    添加url映射:应用和项目直接建立关联

     if 语句判断:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>导航栏</title>
    </head>
    <body>
    {% for i in name_list %}
    
    <h1>{{ i.type }}</h1>
    
        <p>
    
        {% for j in i.value %}
            {{ j }} {% if not forloop.last %} | {% endif %}   <!--如果是最后一个就不显示管道|-->
        {% endfor %}
    
        </p>
    
    {% endfor %}
    
    </body>
    </html>
    

    forloop模板变量:

     

  • 相关阅读:
    Vmware14中设置Centos7静态密码
    字符串和集合截取
    通过FTP连上centos7
    centos7 离线安装mysql-5.7.21
    基于jackson注释@JsonFormat 格式化时间少8小时
    Kotlin基础学习笔记 (三)
    Android 常用开源框架源码解析 系列 (零)引言
    Kotlin基础学习笔记 (一)
    Android 常用开源框架源码解析 系列 (十一)picasso 图片框架
    Android 常用开源框架源码解析 系列 (十)Rxjava 异步框架
  • 原文地址:https://www.cnblogs.com/xiamaojjie/p/12498113.html
Copyright © 2020-2023  润新知