今日学习内容:Django实现搜索和翻页
案例来源均为武沛齐老师在B站的课,跟做的,大家有需要可以到B站听武老师的优质课程!
1.models.py搜索内容
# 普通的搜索
models.PrettyNum.objects.filter(mobile='xxxxxxxxxxx', id=2)
# 用字典搜索
data_dict = {'mobile': 'xxxxxxxxxxx','id':2}
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
# 字段的筛选条件
models.PrettyNum.objects.filter(mobile='xxx') # 筛选等于xxx的
models.PrettyNum.objects.filter(mobile__startswith='xxx') # 筛选以xxx开头的
models.PrettyNum.objects.filter(mobile__endwith='xxx') # 筛选以xxx结尾的
models.PrettyNum.objects.filter(mobile__contains='xxx') # 包含xxx的
# 字典筛选
data_dict = {'id_gt':'12'}
models.PrettyNum.objects.filter(**data_dict)
data_dict = {'mobile__startswith':'xxx'}
models.PrettyNum.objects.filter(**data_dict)
2.使用manage.py创建表结构
class PrettyNum(models.Model):
""" 靓号表 """
mobile = models.CharField(verbose_name='手机号码', max_length=11)
price = models.IntegerField(verbose_name='价格', default=0, null=True, blank=True)
level_choices = (
(1, '1级'),
(2, '2级'),
(3, '3级'),
(4, '4级'),
)
level = models.SmallIntegerField(verbose_name='级别', choices=level_choices, default=1)
status_choices = (
(1,"已占用"),
(2,"未占用")
)
status = models.SmallIntegerField(verbose_name='占用状态', choices=status_choices, default=2)