Django 中的模板设置和加载

Django 中的模板

  • 概念
    • 模板是一个网页,可以被view视图响应给用户
    • 目的是为了解决复杂的显示问题
  • 模板的设置(settings文件)
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates', # 指定模板的索引引擎
        'DIRS': [],  # 指定模板存放的目录,如果为空,这Django自动将每个应用中的templates文件夹作为模板管理目录
        'APP_DIRS': True,  #为true时,首先在DIRS中搜索模板目录,再搜索每个应用中的templates文件夹
        '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',
            ],
        },
    },
]
  • 模板的加载方式一
    • 说明:使用loader获取模板,通过HttpResponse进行相应
    • 第一步:在应用文件夹中创建templates文件夹
    • 第二步:将HTML模板文件放在templates文件夹中
    <!-- templates文件夹中的html模板,并带有一个参数 -->
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>我的音乐</title>
    </head>
    <body>
        <h1>music中的模板</h1>
        <h2>参数1:{{data}}</h2>     <!--{{data}}为接收参数-->
    </body>
    </html>	
    
    • 第三步:在应用文件夹views文件中编写视图函数
    # 应用文件夹中的views文件
    from django.shortcuts import render
    from django.http import HttpResponse
    from django.template import loader
    
    def show_views(request):
        t = loader.get_template("show.html")  # 通过loader获取模板
        html = t.render({"data":"一"})  # 将模板转换为字符串,dict用于传参使用
        return HttpResponse(html)
    
    • 第四步:配置应用文件夹中的urls文件
    # 应用文件夹中的urls文件
    from django.conf.urls import url
    from .views import *
    
    urlpatterns = [
    			    url(r'^$', index_views),  
    			    url('^show/$', show_views)  # 调用上述模板的html文件
    			  ]
    
  • 模板的加载方式二
    • 第一步,第二步,第三步同上
    • 第三步在views文件中使用render直接加载return render(request, templatename, dict)
    # 应用文件夹中的views文件
    from django.shortcuts import render
    from django.http import HttpResponse
    
    def show_views(request):
        return render(request, "show.html", {"data":"一"})
        # show.html 为模板名称, {"data":"一"}为模板参数
    
发布了75 篇原创文章 · 获赞 87 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_43883022/article/details/89640764
今日推荐