zoukankan      html  css  js  c++  java
  • django入门到精通④jinja2模板的使用

    1.创建环境

    (python37_django2) D:pythondjango_imooc_xiaobai>django-admin startproject jinja
    
    (python37_django2) D:pythondjango_imooc_xiaobai>pip install jinja2
    
    (python37_django2) D:pythondjango_imooc_xiaobai>cd jinja
    
    (python37_django2) D:pythondjango_imooc_xiaobaijinja>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)

  • 相关阅读:
    Java一次读取文本文件所有内容
    java Socket多线程聊天程序
    输出1-100内的质数(素数)
    random.nextInt()与Math.random()基础用法
    【bash】今天你坑队友了吗
    【awk】按小时切割日志
    python获取aliyun ECS实例
    记一次优化ansible inventory的小例子
    Apache Flume入门指南[翻译自官方文档]
    django入门-自定义管理界面-part7
  • 原文地址:https://www.cnblogs.com/reblue520/p/14215623.html
Copyright © 2011-2022 走看看