模板(调用的方法,语法locals()方法,控制语句,循环语句,forloop,过滤器) 静态文件(配置静态文件及静态文件的使用)

一、模板


1.使用模板调用一个页面


步骤: 定义一个函数

函数里面写一个html页面

构建模板渲染数据(使html中的类似 我是{{ name }} 无实际数据的收到实际数据)

1.构建模板结构
2.创建渲染模板
3.进行数据渲染
4.返回结果

返回数据(返回的就是html页面)

在views中

from django.template import Template,Context
def gethtml(request):
    html="""
    <html>
        <head>
        </head>
        <body>
        <h1>我是一个h1标签</h1>
        <h2>我是{{ name }}</h2>
        <a href = "https://baike.baidu.com/item/%E5%BE%B7%E6%80%80%E6%81%A9%C2%B7%E9%9F%A6%E5%BE%B7/5457042?fromtitle=%E9%9F%A6%E5%BE%B7&fromid=64575&fr=aladdin">
        <img src='https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1568003957396&di=a9ef056162060cc8d0bb4e830d80f1a4&imgtype=0&src=http%3A%2F%2F03imgmini.eastday.com%2Fmobile%2F20180917%2F62855583b6b5e607bdd7c8d54c34c8dc_wmk.jpeg' title = '这是韦德' alt='这个是韦德'>
        </a>
        <p>{{ content }}</p>
        </body>
    </html>
    """
    #1.构建模板结构
    tempalte_obj = Template(html)
    #2.创建渲染模板
    params = dict(name="韦德大爷",content="好几个总冠军")
    content_obj = Context(params)
    #3.进行数据渲染
    result = tempalte_obj.render(content_obj)
    #4.返回结果
    # return HttpResponse(html)
    return HttpResponse(result)

在urls中
在这里插入图片描述
在这里插入图片描述
缺点: 这种方式虽然能够实现调用一个html页面,并且能够将数据渲染上去,但是页面依然嵌套在python代码中,编写不方便。因此 不常用。


2.模板标签系统介绍


在做web开发,要给用户提供一个页面,页面包括静态页面+数据,两者结合起来就是完整的可视化的页面,django的模板系统支持这种功能,首先需要写一个静态页面(结构html,样式css,行为js)然后通过python的模板语法将数据渲染上去。


使用template之前的配置步骤


1.创建一个templates目录
在这里插入图片描述
在这里插入图片描述


2.配置模板
在这里插入图片描述
配置完后运行;项目根目录下的templates目录
在这里插入图片描述
可以通过改第一行改成jinjia2模板引擎
在这里插入图片描述


3.调用模板的方法


  1. 调用模板第一种方法

     render方法
     要导入from django.shortcuts import render
     该方法有三个参数:request请求,请求的页面,动态渲染()
    

在这里插入图片描述
在这里插入图片描述


  1. 调用模板第二种方法

     render_to_response方法
     后面有两个参数:请求的页面,动态渲染
    

在这里插入图片描述


  1. 调用模板的第三种方法

     template.render方法
    

在这里插入图片描述
在这里插入图片描述


二、模板语法


1.变量的使用


在模板中,如果想要使用后端传入的数据,就要用到模板语法去实现。

django提供的模板语法:变量的使用,控制语句,循环

django模板html文件中使用变量

语法: {{   }}

在这里插入图片描述
在这里插入图片描述
使用locals()方法,作用是将当前视图函数的所有局部变量返回 (后面不用再加字典一个个传入)
在这里插入图片描述


2.控制语句


if else elif
模板中使用控制语句,语法结构
{% if 条件 %}
{% elif 条件 %}
{% else %}
{% endif %}

在这里插入图片描述
在这里插入图片描述


3.循环语句


1. 遍历列表
在这里插入图片描述
在这里插入图片描述


2. 遍历字典
在这里插入图片描述
在这里插入图片描述


3. forloop
forloop是一个django自带的一个变量,作用于循环,记录循环的次数,可以对循环的内容进行控制,判断,通常和if连用
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


  1. 过滤器
    对视图传过来的数据进行二次处理

     语法结构:{{ age | add:10 }} 在age的基础上加10
    

在这里插入图片描述
safe django出于安全考虑,会将前面注入的js或者html语句转义,使用safe将指定的js或者html变为安全的语句,正常执行。
在这里插入图片描述
加了safe可以安全弹出


三、静态文件


前端三大部分 结构 样式 行为

在web开发过程当中,有一类型的文件叫做:静态文件,指:css,js,image.这些文件通常不被直接访问,往往是在加载页面的时候被加载,这些内容是固定的。


1.静态文件的配置


在这里插入图片描述
static下面创建三个dictionary:css,images,js
在这里插入图片描述


2.配置静态文件


在这里插入图片描述
指向文件的绝对路径,由static代理

# 静态文件的配置
STATIC_URL = '/static/'
STATICFILES_DIRS = (
    os.path.join(BASE_DIR,'static'),
)

STATICFILES_DIRS 后面可以是列表或者是元祖

由status_URL 替代、代理了下面的 静态文件的具体地址
在这里插入图片描述


3.静态文件的使用


在这里插入图片描述


4.页面跳转


网络页面和本地页面的相互转换
在这里插入图片描述
在这里插入图片描述
在上面修改
在这里插入图片描述
而a标签的href="/index"要加 /


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值