Django 学习笔记模板变量

Posted keinlee

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django 学习笔记模板变量相关的知识,希望对你有一定的参考价值。

关于Django模板变量官方网址:https://docs.djangoproject.com/en/1.11/ref/templates/builtins/

1.传入普通变量

在hello/Hello World/temlplates/index.html中,修改html文件

<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <title>{{title}}</title>
    <meta charset="utf-8">
</head>
<body>
   <h1> Hello {{name}}</h1>
</body>
</html>

接着在hello/Hello World/views.py文件中,修改views.py

from django.shortcuts import render

def index(request):
    return render(request,‘index.html‘,{‘title‘:‘Welcome‘,‘name‘:‘KeinLee‘})

然后启动服务器,访问浏览器,得到结果:

标题是 Welcome,正文是Hello KeinLee

2.传入字典变量

修改html文件

<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <title>{{title}}</title>
    <meta charset="utf-8">
</head>
<body>
    <h2> Hello {{person.name}} </h2>
    <h2> age {{person.age}} </h2>
    <h2> sex {{person.sex}} </h2>
</body>
</html>

修改views.py文件

from django.shortcuts import render

def index(request):
    #传入普通变量
    #return render(request,‘index.html‘,{‘title‘:‘Welcome‘,‘name‘:‘KeinLee‘})

    #传入字典变量
    person = {‘name‘:‘Lee‘,‘age‘:20,‘sex‘:‘male‘}
    return render(request,‘index.html‘,{‘title‘:‘Welcome‘,‘person‘:person})

然后刷新页面,得到结果:

标题是 Welcome,

正文是

Hello Lee

age 20

sex male

3.传入列表变量

修改html文件

<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <title>{{title}}</title>
    <meta charset="utf-8">
</head>
<body>
    <h2>字典变量:</h2>
    <ul>
        <li> Hello {{person.name}} </li>
        <li> age {{person.age}} </li>
        <li> sex {{person.sex}} </li>
    </ul>
    <h2>列表变量:</h2>
    <ul>
        <li> {{book.0}} </li>
        <li> {{book.1}} </li>
        <li> {{book.2}} </li>
    </ul>
</body>
</html>

修改views.py文件

from django.shortcuts import render

def index(request):
    #传入普通变量
    #return render(request,‘index.html‘,{‘title‘:‘Welcome‘,‘name‘:‘KeinLee‘})

    #传入字典变量
    person = {‘name‘:‘Lee‘,‘age‘:20,‘sex‘:‘male‘}
    book_list = [‘python‘,‘java‘,‘c‘]
    return render(request,‘index.html‘,{‘title‘:‘Welcome‘,‘person‘:person,‘book‘:book_list})

然后刷新页面,得到结果:

标题是 Welcome,

正文是

字典变量:

  • Hello Lee
  • age 20
  • sex male

列表变量:

  • python
  • java
  • c

4.传入对象变量

修改html

<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <title>{{title}}</title>
    <meta charset="utf-8">
</head>
<body>
    <h2>字典变量:</h2>
    <ul>
        <li> Hello {{person.name}} </li>
        <li> age {{person.age}} </li>
        <li> sex {{person.sex}} </li>
    </ul>
    <h2>列表变量:</h2>
    <ul>
        <li> {{book.0}} </li>
        <li> {{book.1}} </li>
        <li> {{book.2}} </li>
    </ul>
    <h2>对象变量:</h2>
    {{person.name}} say : {{person.say}}
</body>
</html>

 修改views.py

from django.shortcuts import render

class Person(object):
    def __init__(self,name,age,sex):
        self.name=name
        self.age=age
        self.sex=sex

    def say(self):
        return "I‘m %s." %self.name
        
def index(request):
    #传入普通变量
    #return render(request,‘index.html‘,{‘title‘:‘Welcome‘,‘name‘:‘KeinLee‘})

    #传入字典变量
    #person = {‘name‘:‘Lee‘,‘age‘:20,‘sex‘:‘male‘}
    #传入列表变量
    book_list =[‘python‘,‘java‘,‘c‘]
    #传入对象变量
    person=Person(‘Lucky‘,18,‘female‘)
    return render(request,‘index.html‘,{‘title‘:‘Welcome‘,‘person‘:person,‘book‘:book_list})

刷新页面,得出结果:

字典变量:

  • Hello Lucky
  • age 18
  • sex female

列表变量:

  • python
  • java
  • c

对象变量:

Lucky say : I‘m Lucky.

 

综上所述,模板变量可以传递普通变量、字典、列表和对象

以上是关于Django 学习笔记模板变量的主要内容,如果未能解决你的问题,请参考以下文章

Javascript MVC 学习笔记 视图和模板

markdown [Django模板]#学习笔记#Web编程#Django

Mastering Django笔记 ch3 Templates

如何在Django模板中添加,乘以数字变量?

Django 模板无法访问字典查找变量。我在代码中犯了啥错误?

Django模板过滤器 - 一行