08-Django 模板

Posted wysk

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了08-Django 模板相关的知识,希望对你有一定的参考价值。

需要教程的请关注个人微信公众号


 

模板:产生html,用于控制页面的展示,模板不仅仅是一个html文件,它包含两部分内容:

  1. 静态内容:css,js,image
  2. 动态内容:用模板语言语言动态的产生一些网页内容

模板文件的使用

  1. 在项目目录下创建模板文件夹templates
  2. 配置模板目录,在setting.py 里面有一个TEMPLATES项DIRS
‘DIRS‘: [os.path.join(BASE_DIR,‘templates‘)],  # 配置模板目录,默认是[],里面是空的

BASE_DIR:获取项目的绝对路径,与templates进行拼接
  1. 创建html文件:在templates下创建html文件
  2. 使用模板文件
    4.1.加载模板文件:去模板目录下获取html文件的内容,得到一个模板对象
    4.2.定义模板上下文:项模板文件传递数据
    4.3.模板渲染:得到一个标准的html内容
def index(request):
    # return  HttpResponse("hello django")
    # 使用模板文件
    # 1.加载模板文件,返回的是模板对象
    temp = loader.get_template(‘booktest/index.html‘)
    # 2.定义模板上下文:给模板文件传递数据
    context=RequestContext(request,)
    context=
    # 3.模板渲染
    res_html=temp.render(context)
    # 4.返回给浏览器
    return HttpResponse(res_html)

上面的方法不够灵活,如果还有页面,又要重新写一遍,自己封装一个函数

def my_render(request,template_path,context_dict):

    temp = loader.get_template(template_path)
    # context=RequestContext(request,context_dict)
    context=context_dict
    res_html=temp.render(context)
    return HttpResponse(res_html)


def index(request):
   return my_render(request,‘booktest/index.html‘,)

模板参数传递

views.py:
return my_render(request,‘booktest/index.html‘,‘now‘:now,‘list‘:list(range(1,10)))

index.html:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h>您好,这是一个模板文件</h><br/>
now变量:<br/>now<br/>
遍历变量:<br/>
    <ul>
        % for i in list%
        <li>i</li>
        % endfor %
    </ul>
</body>
</html>

变量写在模板变量名中,代码段写在% %中

以上是关于08-Django 模板的主要内容,如果未能解决你的问题,请参考以下文章

08-Django模板

django目录

Django 2021年最新版教程30django项目部署到华为云(nginx uWSGI mysql方式)

Django 08. django框架模型之增删改查进阶

08 django模型系统

08-Django-基础篇-admin管理后台