Django 模板

首先要在配置文件内设置模板路径。

#模板配置
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        # 设置模板地址,调用os系统模块选择根路径的文件夹名,但是根目录下要有该文件夹
        'DIRS': [os.path.join(BASE_DIR,"templates")],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

设置方法并调用render模块导入模板。

from django.http import HttpResponse,HttpResponseRedirect
#导入模板解析库
from django.shortcuts import render

#定义一首页方法
def index(request):

    #定义变量,到模板输出
    test_str = "Hello Wrold"
    test_int = 123
    test_list = ["牛奶","鲜花","咖啡","电视"]
    test_dict = [{"name":"小明","age":18},{"name":"李毅","age":19}]
    content = "hello,I am Jack How du u do?"
    dt = datetime.datetime.now()
    #调用reder方法来解析模板,第一个参数是request,第二个参数是模板名,第三个参数传值
    return render(request,"d2_index.html",{"test_str":test_str,"test_int":test_int,"test_list":test_list,"test_dict":test_dict,"content":content,"dt":dt})

模板基础语法。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Django首页模板</title>
</head>
<body>
    
    欢迎,这里是首页

    {# 传统模板语法输出 #}
    {{ test_str }} <br>

    {# 加法运算 通过调用内置过滤器来实现加法运算 #}
    {{ test_int | add:-10 }} <br>

    {# 模板输出list #}
    {{ test_list }} <br>

    {{ test_list.0 }} <br>

    {% for item in test_list %}
        {{ item }}

        {# 打印索引 counter 从一开始的计数器 #}
        {{ forloop.counter }} 

        {# 打印数组索引 #}
        {{ forloop.counter0 }} 

        {# 倒序索引 #}
        {{ forloop.revcounter }}
        
        
        <br>
    {% endfor %}

    {% for item in test_dict %}
        {# 取首位和末尾 #}
        姓名:{{ item.name | first }}{{ item.name | last }}  &nbsp 年龄:{{ item.age }}<br>
    {% endfor %}

    {# 大小写互转 #}
    {{ "jack" | upper }} <br>
    {{ "ROSE" | lower }} <br>

    {# 链式调用 #}
    {{ 'jack' | first | upper }} <br>

    {# 返回长度 #}
    {{ '123456' | length }} <br>

    {# 截断操作 #}
    截断字符操作{{ content | truncatechars:20 }} <br>
    截断单词操作 {{ content | truncatewords:3 }} <br>

    {# 格式化日期 #}
    {{ dt | date:"Y-m-d H:i:s" }}
  
 
</body>
</html>
原文地址:https://www.cnblogs.com/Niuxingyu/p/10289781.html