zoukankan      html  css  js  c++  java
  • 19 01 17 Django 模板 返回一个页面

    模板

    问题

    如何向请求者返回一个漂亮的页面呢?

    肯定需要用到html、css,如果想要更炫的效果还要加入js,问题来了,这么一堆字段串全都写到视图中,作为HttpResponse()的参数吗?这样定义就太麻烦了吧,因为定义字符串是不会出任何效果和错误的,如果有一个专门定义前端页面的地方就好了。

    解决问题的技术来了:模板。

    在Django中,将前端的内容定义在模板中,然后再把模板交给视图调用,各种漂亮、炫酷的效果就出现了。

    创建模板

    为应用booktest下的视图index创建模板index.html

    设置查找模板的路径:打开test1/settings.py文件,设置TEMPLATES的DIRS值

    定义模板

    打开templtes/booktest/index.html文件,定义代码如下:

    <html>
    <head>
        <title>图书列表</title>
    </head>
    <body>
    <h1>{{title}}</h1>
    {%for i in list%}
    {{i}}<br>
    {%endfor%}
    </body>
    </html>
    

    在模板中输出变量语法如下,变量可能是从视图中传递过来的,也可能是在模板中定义的。

    {{变量名}}
    

    在模板中编写代码段语法如下:

    {%代码段%}




     

    视图调用模板简写

    视图调用模板都要执行以上三部分,于是Django提供了一个函数render封装了以上代码。 方法render包含3个参数:

    • 第一个参数为request对象
    • 第二个参数为模板文件路径
    • 第三个参数为字典,表示向模板中传递的上下文数据

    打开booktst/views.py文件,调用render的代码如下:

    from django.shortcuts import render
    
    def index(request):
        context={'title':'图书列表','list':range(10)}
        return render(request,'booktest/index.html',context)
     
  • 相关阅读:
    数学基础之梯度
    背包九问心得
    如何判断机器是大端机还是小端机
    Matlab学习 2021年2月10日
    数字信号处理(超浓缩版)第一天
    matlab里的数据类型
    如何学习Matlab的帮助文档?& 如何去编写帮助文档
    fprintf 和 dlmwrite 在写数据时的区别
    lateinit 延迟初始化
    data class 在 Kotlin中的定义
  • 原文地址:https://www.cnblogs.com/fromlantianwei/p/10280635.html
Copyright © 2011-2022 走看看