首页 > 其他分享 >部分功能实现笔记

部分功能实现笔记

时间:2022-08-18 01:34:10浏览次数:43  
标签:功能 12 实现 PrettyNum 笔记 filter models objects mobile

部分功能实现笔记

以下内容均来自武沛齐老师的课程笔记

Fields的选择

class MyForm(ModelForm):
    xx = form.CharField*("...")#新加不在数据库中的字段
    class Meta:
        model = UserInfo
        fields = ["name","password","age","xx"]#选择需要的字段即可
        fields = "__all__"#选择全部字段
        exclude = ["level"]#排除指定字段

通过设置条件达到不重复

新建靓号

  • 列表点击跳转:/pretty/add/

  • URL

  • ModelForm类

    from django import forms
    
    class PrettyModelForm(forms.ModelForm):
    	...
    
  • 函数

    • 实例化类的对象
    • 通过render将对象传入到HTML中。
    • 模板的循环展示所有的字段。
  • 点击提交

    • 数据校验
    • 保存到数据库
    • 跳转回靓号列表

image-20220818011837662

编辑靓号

  • 列表页面:/pretty/数字/edit/
  • URL
  • 函数
    • 根据ID获取当前编辑的对象
    • ModelForm配合,默认显示数据。
    • 提交修改。

image-20220818011904496

不允许手机号重复。

  • 添加:【正则表达式】【手机号不能存在】

    # [obj,obj,obj]
    queryset = models.PrettyNum.objects.filter(mobile="1888888888")
    
    obj = models.PrettyNum.objects.filter(mobile="1888888888").first()
    
    # True/False
    exists = models.PrettyNum.objects.filter(mobile="1888888888").exists()
    
  • 编辑:【正则表达式】【手机号不能存在】

    排除自己以外,其他的数据是否手机号是否重复?
    
    # id!=2 and mobile='1888888888'
    models.PrettyNum.objects.filter(mobile="1888888888").exclude(id=2)
    

搜索功能

搜索手机号

models.PrettyNum.objects.filter(mobile="19999999991",id=12)

data_dict = {"mobile":"19999999991","id":123}
models.PrettyNum.objects.filter(**data_dict)
models.PrettyNum.objects.filter(id=12)       # 等于12
models.PrettyNum.objects.filter(id__gt=12)   # 大于12
models.PrettyNum.objects.filter(id__gte=12)  # 大于等于12
models.PrettyNum.objects.filter(id__lt=12)   # 小于12
models.PrettyNum.objects.filter(id__lte=12)  # 小于等于12

data_dict = {"id__lte":12}
models.PrettyNum.objects.filter(**data_dict)
models.PrettyNum.objects.filter(mobile="999")               # 等于
models.PrettyNum.objects.filter(mobile__startswith="1999")  # 筛选出以1999开头
models.PrettyNum.objects.filter(mobile__endswith="999")     # 筛选出以999结尾
models.PrettyNum.objects.filter(mobile__contains="999")     # 筛选出包含999

data_dict = {"mobile__contains":"999"}
models.PrettyNum.objects.filter(**data_dict)

分页功能

分页

queryset = models.PrettyNum.objects.all()

queryset = models.PrettyNum.objects.filter(id=1)[0:10]


# 第1页
queryset = models.PrettyNum.objects.all()[0:10]

# 第2页
queryset = models.PrettyNum.objects.all()[10:20]

# 第3页
queryset = models.PrettyNum.objects.all()[20:30]
data = models.PrettyNum.objects.all().count()
data = models.PrettyNum.objects.filter(id=1).count()
  • 分页的逻辑和处理规则

  • 封装分页类

    • 从头到尾开发
    • 写项目用【pagination.py】公共组件。
  • 小Bug,搜索 + 分页情况下。

    分页时候,保留原来的搜索条件
    
    http://127.0.0.1:8000/pretty/list/?q=888
    http://127.0.0.1:8000/pretty/list/?page=1
    
    http://127.0.0.1:8000/pretty/list/?q=888&page=23
    

标签:功能,12,实现,PrettyNum,笔记,filter,models,objects,mobile
From: https://www.cnblogs.com/dhuAtree/p/16597389.html

相关文章

  • 02.JavaScript学习笔记1
    JavaScript学习笔记1.强制类型转换当使用加号进行运算时,会将数字强制转换为字符串,然后再进行运算。constyear='1991';console.log(year+18);console.log(typeo......
  • 如何判断一个系统中的哪些功能会被使用?
    可以根据业务部门人员配比、业务人员对业务投入的日常时间比例情况,来判断一系列功能是否会被客户用到。比如两个客户都有相同的业务部门,一个100人与一个10人,那么他们对系......
  • js实现 delay 和 sleep函数
    console.log("====sleep===");//sleep等待几秒constsleep=(seconds)=>newPromise((resolve)=>setTimeout(resolve,seconds));asyncfunctionsleepTes......
  • 手写实现 js 中的bind,并实现 softBind
    //bind会返回一个硬绑定的新函数,新函数会使用指定的第一个thisCtx去调用原始函数,并将其它参数传给原始函数。硬绑定会降低函数的灵活性,在绑定之后不能通过显式或硬绑定......
  • 代码实现斐波那契数列
    #定义函数deffab(n):#判断n的有效性ifn<=0:return'传递的参数必须大于0的正整数'#当n为1时返回斐波那契数的第1个数0elifn==1:......
  • HCIA-Datacom 3.4 实验四:实现VLAN间通信实验
    实验介绍:划分VLAN后,不同VLAN的用户间不能二层互访,这样能起到隔离广播的作用。但实际应用中,不同VLAN的用户又常有互访的需求,此时就需要实现不同VLAN的用户互访,简称VLAN间互......
  • 817笔记(轮播图js)
    网页轮播图步骤:鼠标经过轮播图模块,左右按钮显示,离开隐藏左右按钮点击右侧按钮一次,图片往左播放一次,以此类推,左侧按钮同理图片播放的同时,下面小圆圈模块跟随一起变化......
  • 两种方法实现点击列表的时候分别打印索引号(普通方法/闭包)
    首先来简述什么是闭包假设上面三行代码在一个立即执行函数中(为简明起见,我就不写立即执行函数了,影响读者理解)。三行代码中,有一个局部变量local,有一个函数foo,foo里......
  • 代码实现 打印九九乘法口诀
    #for循环,其中range(1,10)取1-9之间的整数,不会取到10#range(1,10)相当于数学中的[1,10),取值范围是前闭后开foriinrange(1,10):#for循环,取1到i的整数......
  • Kubernetes学习笔记(十一):Node Selectors & Affinity
    NodeSelectorspod-definition.ymlspec:nodeSelector:size:Large##生效前需要先标记nodekubectllabelnodes<node-name><label-key>=<label-value>:......