Django大回顾-4 自定义过滤器和标签、模型层

【1】自定义过滤器,自定义标签

        第一步

首先注册一个app

        第二步

在注册的app下创建一个包,包名必须为templatetags

        第三步

在templatetags包下面创建一个py文件,文件名随便起

       第四步

在py文件中写入:以下代码

from django import template

from django.utils.safestring import mark_safe

register = template.Library()      # register的名字是固定的,不可改变



定义自己的过滤器或标签

'''

定义过滤器使用:@register.filter

定义标签使用:@register.simple_tag

'''


# 定义一个过滤器,实现敏感词替换功能

@register.filter
def filter_words(content:str)->str:
    l = ['妈的', '傻逼', '退游']
    # 把content中所有关键词,替换,返回
    for item in l:
        content = content.replace(item, "**")
    return content




# 定义一个标签

@register.simple_tag
def my_input(id,arg):
    result = "<input type='text' id='%s' class='%s' />" %(id,arg)
    return mark_safe(result)

        第五步

在模板上使用

//导入过滤器
{% load comm_filter %}

//过滤器使用

{
   { content|filter_words }}

//标签使用

{% my_input 7 'red' %}

二、模型层(models.py)

【1】orm框架 ------ 对象映射关系

数据库                           Django程序中

数据表   --------映射----------》类

记录   ----------映射-----------》对象

 【2】利用Django创建一张表

from django.db import models

# 写一个个类​
class Book(models.Model):    

    id = models.AutoField(primary_key=True)    

    title = models.CharField(max_length=64, null=False)
    
    price = models.DecimalField(max_digits=7, decimal_places=2)       



'''
注意:
    1、类必须继承models.Model
    
    2、写好类后,必须执行数据库迁移
    
    3、数据库迁移命令:
        manage.py makemigrationspython    ------ 生成迁移记录(先执行)
        
        manage.py migrate  --------- 将数据写入到数据库中(后执行)

'''

【3】常用字段和非常用字段

字段名 解释和传参 注意
AutoField(Field) int自增列,必须填入参数 primary_key=True 当model中如果没有自增列,则自动会创建一个列名为id的列
BigAutoField(AutoField) bigint自增列,必须填入参数 primary_key=True
SmallIntegerField(IntegerField): 小整数 -32768 ~ 32767
PositiveSmallIntegerField(PositiveIntegerRelDbTypeMixin, IntegerField) 正小整数 0 ~ 32767
IntegerField(Field)  整数列(有符号的) -2147483648 ~ 2147483647
PositiveIntegerField(PositiveIntegerRelDbTypeMixin, IntegerField) 正整数 0 ~ 2147483647
BigIntegerField(IntegerField): 长整型(有符号的) -9223372036854775808 ~ 9223372036854775807
BooleanField(Field) 布尔值类型
NullBooleanField(Field):
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值