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

时间:2023-02-28 14:58:19

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