Django框架学习(3):模板标签

创建Django项目步骤:

第一步:创建虚拟环境

第二步:安装django模块

第三步:创建一个存放项目的根目录文件夹,进入文件夹后,再使用django-admin创建django项目

第四步:进入到项目根目录后,直到看到manage.py这个文件,运行runserver命令

第五步:pycharm远程连接虚拟机:设置三个点

  1. 连接到python解释器
  2. 设置好Deployment里面的设置
  3. 设置好在pycharm里面的runserver

Django项目操作步骤

URLconf:urls.py:指明你的登陆路径

模板:redirect重定向,reverse(app_name:name)动态解析(如果要跳到别的app里需要app_name)

render(模板渲染),模板变量:{{ 变量名 }},模板过滤器:{{ 变量名|过滤器[:参数] }},模板标签:{{ % load static % }}

模板标签

一,常用标签

模板标签的作用:在模板中进行各种逻辑操作,比如循环,判断等

在这里插入图片描述

模板标签基本语法:{% load static %},{% tag %}{% endtag %}

1,{% load static %}						 # 加载静态文件
2,{% for aaa in data %} {% endfor %}	  # 使用for循环
3{{ forloop.counter }}					# 实现生成器的效果
3,{% url 'student:detail' aaa.name %}	  # 跳转到根目录student App里的视图
4, 	{% if 条件一 %}
	{% elif 条件二 %}
    {% else %}
   	{% endif %}

在这里插入图片描述

二,模板的引用(include)
{% include 'student/ad.html' %}		# 广告,所有网页共同的部分

在这里插入图片描述

三,模板的继承

继承:extends

作用: 将模板中共同的部分抽离出来,独立作为一个部分

{% extends 'student/base.html' %}	# 要放在html最前面,导入的继承的部分

​ 但是此时页面上只有继承过来的base.html这个网页的效果,原来的网页内容不见了?

扩展:block(公共部分挖坑,通过继承之后填坑)

{% block 名称 %}内容{% endblock %}

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

继承的好处:可以把所有页面的公共部分抽离出来,作为一个独立的部分,然后在公共的部分通过block挖坑(相当于写一个占位),然后在功能页面通过继承extend把base页面继承过来,然后再同过block把之前的坑填了(相当于在占位里面加上内容),减少代码量,只需要填坑就行了

四,自定义过滤器

本质:就是一个python函数,有一个或者两个参数

  • 第一个参数是传进来的模板变量,不一定是字符串
  • 第二个参数是一个普通参数,可以是默认参数,也可以不要这个参数

前提:设置数据时,0代表女,1代表男

​ 展示数据时,页面显示为中文或者英文

解决方法:自定义过滤器

步骤

  1. 常用设置:在student App下创建一个templatetags的python包

    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'student'
    ]		# 创建之前必须确认该setting下的配置是否有App名
    

在这里插入图片描述

  1. 设置 自定义过滤器函数

    def to_sex(values, arg='zh'):    # values 0,1
        change ={
            'zh': ('女', '男'),
            'en': ('Female', 'Male')
        }
        return change[arg][values]
    
  2. 注册

    from django import template
    register = template.Library()
    
    def to_sex(values, arg='zh'):    # values 0,1
        change ={
            'zh': ('女', '男'),
            'en': ('Female', 'Male')
        }
        return change[arg][values]
    
    register.filter('to_sex', to_sex)   # 参数一:自定义过滤器名字, 二:函数名
    register.filter(to_sex)	# 函数名,用函数名做过滤器
    

在这里插入图片描述

  1. 导入{% load customer_filers %}在这里插入图片描述

    传入参数(传给第二个参数)在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值