django入门到精通④jinja2模板的使用

1.创建环境

(python37_django2) D:\python\django_imooc_xiaobai>django-admin startproject jinja

(python37_django2) D:\python\django_imooc_xiaobai>pip install jinja2

(python37_django2) D:\python\django_imooc_xiaobai>cd jinja

(python37_django2) D:\python\django_imooc_xiaobai\jinja>python manage.py startapp app

2.创建jinja2的基础环境文件

app/base_jinja2.py

复制代码
# _*_ coding:utf-8 _*_
# __author__ == 'jack'
# __date__ == '2020-12-31 10:13 AM'

from jinja2 import Environment
from django.contrib.staticfiles.storage import staticfiles_storage
from django.urls import reverse
from .myfilter import test


def environment(**options):
    env = Environment(**options)
    env.globals.update({
        'static': staticfiles_storage.url,
        'url': reverse
    })
    # 自定义过滤器
    env.filters['test'] = test
    return env
复制代码

3.配置django

注册app

复制代码
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app',
]
复制代码

模板配置

复制代码
TEMPLATES = [
    {
    # 修改默认的template为 jinja2
        'BACKEND': 'django.template.backends.jinja2.Jinja2',
    # 把模板的目录加入进来
        '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',
            ],
            'environment': 'app.base_jinja2.environment'
        },
    },
]
复制代码

加入路由
jinja2/urls.py

from django.contrib import admin
from django.urls import path
from app.views import test

urlpatterns = [
    path('admin/', admin.site.urls),
    path('test/', test)
]

4.创建模板文件

templates/base.html

复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    {% block head %}
    <meta charset="UTF-8">
    <title>{% block title %}{% endblock %}</title>
        {% block css_style %}
        {% endblock %}
    {% endblock %}
</head>
<body>
{% block content %}
{% endblock %}
{% block js_script %}
{% endblock %}
</body>
</html>
复制代码

测试文件
templates/test.html

复制代码
{% extends 'base.html' %}
{% block css_style %}
<link rel="stylesheet" href="/static/test.css">
{% endblock %}
{% block content %}

{{ name|title }},{{ age }}<br/>
{{ age|test(2) }}<br/>

{% endblock %}
复制代码

5.视图

app/views.py

复制代码
from django.shortcuts import render

# Create your views here.


def test(request):

    data = {'name': 'jack', 'age': 18}

    return render(request, 'test.html', data)
复制代码

posted @   reblue520  阅读(169)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示