Django - 模板

简介: Django - 模板1. map 用法:def home(request):    List = map(str, range(100))# 一个长度为100的 List    return render(request, 'home.
Django - 模板
1. map 用法:

def home(request):
    List = map(str, range(100))# 一个长度为100的 List
    return render(request, 'home.html', {'List': List})

# html
# 遍历到最后一项,不要加逗号
{% for item in List %}
    {{ item }}{% if not forloop.last%},{% endif %}
{% endfor %}
map的参数:
forloop.counter        索引从 1 开始算
forloop.counter0    索引从 0 开始算
forloop.revcounter    索引从最大长度到 1
forloop.revcounter0    索引从最大长度到 0
forloop.first        当遍历的元素为第一项时为真
forloop.last        当遍历的元素为最后一项时为真
forloop.parentloop    用在嵌套的 for 循环中,获取上一层 for 循环的 forloop

2. 得到对应视图的网址

# views.py
def add(request, a, b):
    c = int(a) + int(b)
    return HttpResponse(str(c))

# urls.py
urlpatterns = patterns('',
    url(r'^add/(\d+)/(\d+)/$', 'app.views.add', name='add'),
)

# name 保存的是 url前半部分的值,这样可以达到动态获取url的效果
# r'^add/(\d+)/(\d+)/$' : /add/4/5/
# r'^add2/(\d+)/(\d+)/$' : /add2/4/5/
# template html
{% url 'add' 4 5 %}
# 注意:如果是 Django1.4 的话,需要在模板开头加上 {% load url from future %},如果有 extends的话,要放在 extends后面

3. 模板中的一些操作

{% if a %}
{% elif b %}
(% else %}
{% endif %}

{% for a in List %}
{% endfor %}
逻辑操作符:==, !=, >=, <=, >, <, and, or, not, in, not in

4. 如何在模板中使用 request

# Django >= 1.8,修改 settings.py
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                ...
                'django.template.context_processors.request',
                ...
            ],
        },
    },
]
# Django <= 1.7,修改 settings.py
TEMPLATE_CONTEXT_PROCESSORS = (
    "django.contrib.auth.context_processors.auth",
    "django.core.context_processors.debug",
    "django.core.context_processors.i18n",
    "django.core.context_processors.media",
    "django.core.context_processors.static",
    "django.core.context_processors.tz",
    "django.contrib.messages.context_processors.messages",
    "django.core.context_processors.request",
)
# 加上后我们就可以在模板里操作 
相关文章
|
SQL 前端开发 JavaScript
Python 教程之 Django(10)模板
Python 教程之 Django(10)模板
183 0
|
前端开发 JavaScript 数据库
python Django教程 之模板渲染、循环、条件判断、常用的标签、过滤器
python Django教程 之模板渲染、循环、条件判断、常用的标签、过滤器
|
JSON 数据处理 API
Django后端架构开发:视图与模板的正确使用
Django后端架构开发:视图与模板的正确使用
304 1
|
前端开发 Python
Django模板
【8月更文挑战第19天】
137 3
|
自然语言处理 前端开发 数据处理
Django的模板系统
【8月更文挑战第13天】
180 2
|
Java C++ Python
django 模板 过滤器
django 模板 过滤器
|
API Java 数据库连接
从平凡到卓越:Hibernate Criteria API 让你的数据库查询瞬间高大上,彻底告别复杂SQL!
【8月更文挑战第31天】构建复杂查询是数据库应用开发中的常见需求。Hibernate 的 Criteria API 以其强大和灵活的特点,允许开发者以面向对象的方式构建查询逻辑,同时具备 SQL 的表达力。本文将介绍 Criteria API 的基本用法并通过示例展示其实际应用。此 API 通过 API 构建查询条件而非直接编写查询语句,提高了代码的可读性和安全性。无论是简单的条件过滤还是复杂的分页和连接查询,Criteria API 均能胜任,有助于提升开发效率和应用的健壮性。
483 0
|
前端开发 数据处理 开发者
解锁Django模板系统终极奥义!揭秘高效前端渲染秘籍,让你的网站秒变炫酷黑科技!
【8月更文挑战第31天】Django作为Python的高级Web框架,内置的模板系统支持动态HTML渲染。本文通过在线书店案例,详细介绍Django模板系统的设置与高效渲染技巧,包括创建模板文件、编写视图函数及URL配置。通过合理使用过滤器、深度查询和模板继承等技巧,提升前端渲染效率和安全性,优化Web应用开发流程。
199 0
|
安全 JavaScript 前端开发
Django入门到放弃之模板及标签
Django入门到放弃之模板及标签
|
Python
Django 模板:构建动态网页的关键
Django 模板:构建动态网页的关键
257 9