Django-Templates模板系统

本文介绍了Django模板系统的存放方式,包括配置和存放位置。详细讲述了模板变量的命名规则、类型及使用方法,并讨论了模板过滤器和标签的使用,包括自定义过滤器和标签。此外,还涵盖了模板继承、引用以及上下文管理的概念。
摘要由CSDN通过智能技术生成

1. 模板存放方式

1.1 方式1

1.1.1 配置

使用模板需要在Django setting.py里面进行配置:在TEMPLATES里面的DIRS设置路径拼接

TEMPLATES = [
    {
   
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        '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',
            ],
        },
    },
]

1.1.2 存放位置

在项目目录下创建一个templates文件夹,然后里面创建对应的app文件夹来存放每个app的模板。

1.2 方法2

1.2.1 配置

在Django setting.py里面INSTALLED_APPS注册app。

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    
   ]

1.2.2 存放位置

在每个app下面创建一个templates文件夹用来存放app自己的模板

方法1:正常情况下选择方法1,在项目目录下创建一个templates文件夹里面创建的app文件夹来存放对应的app的模板。
方法2:在app需要重复使用时,选择方法2,在每个app里面创建templates文件夹来存放对应的模板。

2. 模板变量

模板变量是用来连接前后端,是后台传递给前端的动态变量,用content={} 键值对来传递。

2.1 命名规则

  1. 只能以数字、下划线(_)和字母组成,不能包含空格和特殊字符
  2. 只能以下划线(_)和字母开头

2.2 模板变量的类型

  1. 数字 --> 前端直接拿去
  2. 字符串 -->前端直接拿取
  3. 字典 -->前端通过 字典变量名.key拿取值,也可以通过字典变量名.items拿到键
  4. 列表 -->前端通过列表变量名.index(索引值)拿取
  5. 函数 -->前端函数变量名拿到函数返回值
  6. 对象 -->前端对象变量.属性对象的属性
  7. 类 -->前端类变量.属性或者类变量名.方法名拿到类的属性和方法

2.3 使用方法

# 前端中通过双大括号包裹模板变量来获取值
{
   {
    变量名.方法 }}

3. 模板过滤器

3.1 常用的模板过滤器

	add:            --{
   {
   args|add:val)}}           给args加上相应的值,这里的val只能是数字类型或者数字字符串
	
    addslashes      --{
   {
   args|addslashes}}          给变量的引号加上斜线(转义符)
	
    capfirst        --{
   {
   args|capfirst}}            字符串首写字母大写
	
    cut             --{
   {
   args|cut:"要移除的对象"}}    从字符串中移除的字符
	
    date            --{
   {
   args|data:"Y-m-d"}}        将传来的字符串化    *****  重点中的重点
	
    default         --{
   {
   args|default:""}}          如果args的值为False,就替换为传入值,否者保持原来的
	
    default_if_none --{
   {
   args|default_if_none:""}}  如果值为None,就替换为值,否者保持原来的
	
    safe            --{
   {
   args|safe}}                传入的是html语句,加上这个词后会关闭原来的xss跨域攻击安全机制,让html语句渲染到界面上,(当系统设置autoescaping打开的时候,该过滤器使得输出不进行escape转换)
    
	safeseq          --{
   {
   value | safeseq}}              与safe基本相同,safeseq是针对多个字符串组成的sequence
    
	{
   % autoescape off %}  1                     这三个是用的 跟safe的法一样
    <h1>{
   {
   args}}<h1>      2
    {
   % endautoescape %}   3

    dictsort        --{
   {
   args|dictsort:"key"}}       对传入的字典按照关键字排序   [{
   },{
   }]
	
    dictsortreversed --{
   {
   args|dictsortreversed<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值