django之创建第6个项目-过滤器

1、views.PY

# Create your views here.
#coding:utf-8
from django.http import HttpResponse
import datetime
#导入templates文件所需导入库
from django.template import loader,Context


class Person():

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

    def myMethod(self):
        return "get it"

def index(request):
    #第二个项目
    #return HttpResponse("hello,Django")

    #加载器,加载模板
    t=loader.get_template("index.html")

    #django之创建第4-3个项目-访问list数据
    #book_list = ["python","c++","ruby","php"]
    #c = Context({"test": book_list})  # 在这里test位变量,book_list为变量的值
    #return HttpResponse(t.render(c))


    # django之创建第4-2个项目-访问class类属性和类方法
    #实例化
    #person = Person("xiaodeng", 28, "male")
    #c = Context({"test": person})  # 在这里test位变量,user为变量的值
    #return HttpResponse(t.render(c))


    #静态
    #c=Context({})
    #return HttpResponse(t.render(c))

    #动态,传入变量
    #c=Context({"name":"Django"})
    #return HttpResponse(t.render(c))


    # django之创建第4-1个项目-Dict形式
    user = {"name": "xiaodeng", "sex": "male", "age": 28,"today":datetime.datetime.now()}
    c = Context({"test": user})  # 在这里test位变量,user为变量的值
    return HttpResponse(t.render(c))

2、index

<!DOCTYPE html>
<body lang="en">
<head>
    <meta charset="UTF-8">
    <title>django之创建第5个项目-条件语句</title>
</head>
<br>
    <h2>name:{{test.name}}</h2> <!--模板  变量用变量定义-->
    <h2>age:{{test.age}}</h2>
    <h2>访问类方法:{{test.myMethod}}</h2>
    <h1>条件语句</h1>


<h1>1、条件语句-if条件语句</h1>

    {% if test.age > 20 %}
        <li>我要努力了</li>
    {% else %}
        <li>你还可以玩玩?不可以</li>
    {% endif %}

    <lo>2、and、or、not</lo>

    {% if not user1 %}
        <li>user1是不存在的</li>
    {% else %}
        <li>uer1存在</li>
    {% endif %}

    {% if not test.name %}
        <li>test.name 为空(含义:如果user.name的值不存在,则定义他为空)</li>
    {% endif %}

<h1>2、条件语句-for条件语句</h1>
    <li>第1种方法:test.values</li>
    {% for value in test.values %}<!--取字典的值-->
        <lo>{{value}}</lo>
    {% endfor %}
    </br>
    </br>
    <li>第2种方法:test.keys</li>
    {% for key in test.keys %}<!--取字典的键-->
        <lo>{{key}}</lo>
    {% endfor %}
    </br>
    </br>
    <li>第3种方法:test.items</li>
    {% for key,value in test.items %}<!--取字典的键值对-->
        <lo>{{key}}:{{value}},</lo>
    {% endfor %}
    </br>
    </br>
    <lo>针对list数据时一样的道理,直接遍历list数据即可,和python很像</lo>

<h1>2.1、条件语句-for条件语句反向迭代(reversed)</h1>
    </br>
    {% for key in test.keys reversed %}<!--反向迭代-->
        <lo>{{key}}</lo>
    {% endfor %}
    </br>
    </br>


<h1>3、过滤器-转化为大写</h1>
    <li>第1种方法:key.upper</li>
    {% for key,value in test.items %}
        <lo>{{key.upper}}:{{value}}</lo><br><!--br换行-->
    {% endfor %}
    </br>
    <li>第2种方法:key | upper</li>

    {% for key,value in test.items %}
        <lo>{{key | upper}}:{{value}}</lo><br><!--竖杠为管道符号-->
    {% endfor %}

    </br>
    <li>第3种方法:多重管道</li>

    {% for key,value in test.items %}
        <lo>{{key | upper |lower | capfirst }}:{{value}}</lo><br><!--竖杠为管道符号-->
    {% endfor %}

</br>
<h1>3、过滤器-时间过滤或者格式化</h1>
<li>3.1、当前时间:{{test.today}}</li>
<li>3.2、格式化当前时间:{{test.today | date:"Y-m-d H:i:s"}}</li>
</br>
<lo>格式化时时间分别用什么字母表示?</lo><br>
<lo>Y:年</lo><br>
<lo>m:月</lo><br>
<lo>d:日</lo><br>
<lo>H:小时</lo><br>
<lo>i:分钟</lo><br>
<lo>s:秒</lo><br>

<h1>3、过滤器-自定义过滤器</h1>



</body>
</html>

3、百度云盘:http://pan.baidu.com/s/1c2LQICo

原文地址:https://www.cnblogs.com/dengyg200891/p/5353425.html