class
Person(models.Model):
#
定义用户名是唯一的
p_name = models.CharField(max_length=20,unique=True,db_column=
'
name
'
)
#
更改数据库中的列名为age
p_age = models.IntegerField(default=18,db_column=
'
age
'
)
p_sex
= models.BooleanField(default=True,db_column=
'
sex
'
)
#
更改数据库表名称
class
Meta:
db_table
=
'
person
'
二、数据筛选过滤,filter与exclude
1、filter
表示查询符合设定条件的集合
= 直接筛选符合条件的
__gt 大于(为双下划线)
__gte 大于等于
__lt 小于
__lte 小于等于
__contains 包含(加 i 忽略大小写)
__startswith 开头是
__endswith 结尾是
__in 其中之一
__range 范围
2、exclude
表示查询出不符合条件设定的集合
筛选方式与filter一致
3、代码实例
from django.shortcuts import render
from App_four.models import Person
import random
from django.http import HttpResponse
# 给数据库批量添加数据
def person(request):
word_list = ['a','b','c','d','t','j','k','l','n','s','e','f','o','p','y','z','w']
for i in range(20,60):
person = Person()
# 在列表中随机选取4个字母组合成一个名字
words = random.sample(word_list,4)
name = ''
for word in words:
name +=word
person.p_name = name
person.p_age = i
person.p_sex = random.choice([0,1])
person.save()
return HttpResponse('批量添加成功!')
# 筛选过滤数据
def get_person(request):
persons = Person.objects.all()
# 获取20岁的person
person20 = persons.filter(p_age=20)
# 获取40岁以上的person
person40 = persons.filter(p_age__gt=40)
# 获取40-50之间的人
person50 = persons.exclude(p_age__lt=40).filter(p_age__lt=50)
# 获取年龄在30-40岁之间的人并且性别为男的人
person30 = persons.exclude(p_age__lt=30).filter(p_age__lt=40).filter(p_sex=1)
content = {
'persons1':person20,
'persons2':person40,
'persons3':person50,
'persons4':person30,
return render(request, 'person.html', context=content)