python例子-Django项目中的模版特性

一、在网页上显示一个字符变量

  在views.py中定义处理函数:(记得在urls.py中绑定URL)

#coding: utf-8      #这里如果不指定utf-8的话,汉字输出就会报编码错误.
from django.shortcuts import render

def home(request):
    string = u"一个中文字符"
    return render(request, ‘home.html‘, {‘string‘: string})

  在templates模版文件夹下的模版文件中的格式:

{{ string }}

  注意:以后显示变量就使用{{ var }} 的形式.

二、for循环以及List,dict的显示

  在views.py中定义处理函数:(记得在urls.py中绑定URL)

#coding:utf-8
from django.shortcuts import render

# Create your views here.
def home(request):
        string = ‘showString‘
        list_arry = [‘one‘,‘two‘,‘three‘,‘four‘,‘haha‘,‘It\‘s gred‘]
        dict_info = {‘site‘:u‘网址‘,‘content‘:u‘网页内容‘,‘name‘:‘‘}return render(request,‘home.html‘,{‘str‘:string,‘aList‘:list_arry,‘dict_info‘:dict_info})

  模版文件中对应:

#list循环:
{% for i in aList %}      #循环
       {{ i }}    #输出循环变量
{% endfor %}     #结束循环

#dict循环
{% for key,value in dict_info.items %}
        {{ key }}:{{ value }}
{% empty %}
        <li>sorry it a empty</li> #如果在for循环中遇到Empty就使用{% empty %}进行判断;Empty:当list,dict为空,没有值时就时为Empty,可不是某个下标为空.
{% endfor %}
#dict循环另一种方式
{{ dict_info.site }},{{dict_info.content}} #这里格式为 dict.key

三、for循环以及其中的常见判断

  在views.py中定义处理函数:(记得在urls.py中绑定URL)

#coding:utf-8
from django.shortcuts import render

# Create your views here.
def home(request):
        string = ‘showString‘
        list_arry = [‘one‘,‘two‘,‘three‘,‘four‘,‘haha‘,‘It\‘s gred‘]
        list_range = map(str,range(100))
        #empty_list = [‘a‘,‘b‘,‘c‘,‘d‘,‘ ‘,‘f‘]
        empty_list = []
        return render(request,‘home.html‘,{‘str‘:string,‘aList‘:list_arry,‘list_range‘:list_range,‘empty_list‘:empty_list})

  模版文件中对应:

#判断是否是list中最后一个
{% for num in list_range %}
        {{ num }}{% if not forloop.last %},{% endif %}
{% endfor %}

#判断list是否为空Empty
{% for i in empty_list%}
        {{ i }}
{% empty %}
        it‘s empty
{% endfor%}

  其他for中判断:

forloop.counter    索引从 1 开始算
forloop.counter0    索引从 0 开始算
forloop.revcounter    索引从最大长度到 1
forloop.revcounter0    索引从最大长度到 0
forloop.first    当遍历的元素为第一项时为真
forloop.last    当遍历的元素为最后一项时为真
forloop.parentloop    用在嵌套的 for 循环中,获取上一层 for 循环的 forloop

四、模版根据处理函数动态 生成连接:(可用于链接跳转)

  在views.py中定义处理函数:

#coding:utf-8
from django.shortcuts import render

def add(request,a,b):
        c = int(a) + int(b)
        return render(request,‘add.html‘,{‘jiafac‘:c})  #返回的都为同一个模版文件

def other(request,c,d):
        c = c + d
        return render(request,‘add.html‘,{‘otherc‘:c})  #返回的都为同一个模版文件

  在urls.py中绑定的URL:

urlpatterns = [
    url(r‘^jiafa/(\d+)/(\d+)/$‘,‘learn.views.add‘,name=‘add‘),
    url(r‘^zifu/(\w+)/(\w+)/$‘,‘learn.views.other‘,name=‘other‘),
    url(r‘^admin/‘, include(admin.site.urls)),
]

  在模版中:(add.html)

{% url ‘other‘ ‘as‘ ‘bd‘ as the_url %}    #格式为{% url ‘函数名‘ 参数1 参数2 ... %}  注意,如果参数为数字可以不用加引号,为字符需加引号,否则当做变量处理。如果该变量不存在就不会生成该链接,这里处理函数为other,参数为字符 ‘as‘ ‘bd‘ 生成连接为 /zifu/as/bd ,客户端点击该链接就会执行相应的请求.  这里的url就会根据 urls.py中的正则定义带入参数生成链接。as为 取别名
<a href="{{ the_url }}"> linkto : {{ the_url }}</a>
</br>
c:{{ jiafac }}
</br>
otherc: {{ otherc }}

五、模版中的逻辑操作

  ==, !=, >=, <=, >, < 这些比较都可以在模板中使用

{% if var >= 90 %}
 great
{% elif var >= 80 %}
 good
{% elif var >= 70 %}
 ok
{% elif var >= 60 %}
 bad
{% else %}
 so bad
{% endif %}

  and, or, not, in, not in 也可以在模板中使用

{% if num <= 100 and num >= 0 %}
 num在0到100之间
{% else %}
 数值不在范围之内!
{% endif %}

  判断 ‘zifu‘ 在不在一个列表变量 List 中:

{% if ‘zifu‘ in List %}
 字符在List中
{% else %}
 字符不在List中
{% endif %}

2015年10月22日00:39:05

时间: 2025-01-02 00:55:16

python例子-Django项目中的模版特性的相关文章

Python:Django 项目中可用的各种装备和辅助

1 Redis 数据库 2 MySQL 数据库 3 前端服务器 live-server 4 定时任务 django-crontab扩展 5 Docker 容器 --用来运行 FastDFS 分布式文件系统 6 FastDFS分布式文件系统 --包含Tracker server 和 Storage server 7 CKEditor 富文本编辑器 --方便网站运营人员需要录入商品并编辑商品的详情信息 8 定时器 9 celery 异步任务服务器 10 Json web token (JWT) 11

在Python的Django框架中加载模版的方法

在Python的Django框架中加载模版的方法 为了减少模板加载调用过程及模板本身的冗余代码,Django 提供了一种使用方便且功能强大的 API ,用于从磁盘中加载模板, 要使用此模板加载API,首先你必须将模板的保存位置告诉框架. 设置的保存文件就是settings.py. 如果你是一步步跟随我们学习过来的,马上打开你的settings.py配置文件,找到TEMPLATE_DIRS这项设置吧. 它的默认设置是一个空元组(tuple),加上一些自动生成的注释. TEMPLATE_DIRS =

Django项目中使用Redis

Django项目中使用Redis DjangoRedis 1 redis Redis 是一个 key-value 存储系统,常用于缓存的存储.django-redis 基于 BSD 许可, 是一个使 Django 支持 Redis cache/session 后端的全功能组件. 1.1 为何要用 django-redis ? 持续更新 本地化的 redis-py URL 符号连接字符串 可扩展客户端 可扩展解析器 可扩展序列器 默认客户端主/从支持 完善的测试 已在一些项目的生产环境中作为 ca

Python的Django框架中的Cookie相关处理

Python的Django框架中的Cookie相关处理 浏览器的开发者在很早的时候就已经意识到, HTTP's 的无状态会对Web开发者带来很大的问题,于是(cookies)应运而生. cookies 是浏览器为 Web 服务器存储的一小段信息. 每次浏览器从某个服务器请求页面时,它向服务器回送之前收到的cookies 来看看它是怎么工作的. 当你打开浏览器并访问 google.com ,你的浏览器会给Google发送一个HTTP请求,起始部分就象这样: GET / HTTP/1.1 Host:

django项目中遇到要实现定时任务

django项目中遇到要实现定时任务,所以选用了简单易用的django-crontab插件. 1.安装 django-crontab pip install django-crontab 2.定时要执行的脚本 先写个简单的测试脚本. ipoms/crons.py import datetime def update_stock_status(): start_time = datetime.datetime.now() print start_time, ", begin update_stoc

Python的Django框架中的Context使用

Python的Django框架中的Context使用 一旦你创建一个 Template 对象,你可以用 context 来传递数据给它. 一个context是一系列变量和它们值的集合. context在Django里表现为 Context 类,在 django.template 模块里. 她的构造函数带有一个可选的参数: 一个字典映射变量和它们的值. 调用 Template 对象 的 render() 方法并传递context来填充模板: >>> from django.template

异步任务利器Celery(二)在django项目中使用Celery

Celery 4.0支持django1.8及以上的版本,低于1.8的项目使用Celery 3.1. 一个django项目的组织如下: - proj/ - manage.py - proj/ - __init__.py - settings.py - urls.py 首先建立proj/proj/celery.py文件: from __future__ import absolute_import, unicode_literals import os from celery import Cele

python例子-Django常用命令

1.新建一个Django项目: django-admin startproject project-name or django-admin.py startproject project-name 2.新建项目木下的一个子app:(是到生成的项目文件夹下) python manage.py startapp app-name or django-admin.py startapp app-name 3.同步数据库: python manage.py syncdb 注意:Django 1.7.1

在Django项目中使用富文本编辑器

1 开发要点 现在网上有很多的富文本编辑器,包括Markdown.tinymce.UEditor.KindEditor.ckeditor等等.在项目中使用这些编辑器主要有以下几个问题: 编辑页面 在HTML页面渲染编辑器: 定制编辑器的功能,比如有哪些文本样式.图片上传.代码插入: 定制编辑器的样式,指的是编辑器整体的样式,比如高度.宽度.显示位置等等: 预览内容: 获取内容: 显示页面 显示内容: 2 Django APP 下表列出一些常用的APP,它们都可以在GitHub上找的到,链接见下文