Django学习路11_向数据库中添加 和 获取指定条件数据

在 views.py 中添加函数 向数据库中添加数据

def add_persons(request):

    for i in range(15):
        person = Person()
        flag = random.randrange(100)
        person.p_name = "Hany_ %d"%(i)
        person.p_age = flag
        person.p_sex = flag%2
        person.save()
    return HttpResponse("批量添加成功")

注: 
使用随机数,进行添加数据(目前还是静态数据)
添加表中的元素属性值
save 进行保存
在使用 random 之前先进性导入
http://127.0.0.1:8000/app4/addpersons

添加一条数据

def add_person(request):
    person = Person.objects.create(p_name=‘Yizhan‘)
    # 使用 objects.create 进行创建一条数据
    person.save()
    return HttpResponse("%s 创建成功"%(person.p_name))

注:
使用 create 方法进行创建

Django学习路11_向数据库中添加  和 获取指定条件数据

 

 


获取数据

def get_persons(request):
    # persons = Person.objects.filter(p_age__gt=30)
    ‘‘‘age 大于 30 的 ‘‘‘
    # persons = Person.objects.filter(p_age__gt=30).filter(p_age__lt=80)
    ‘‘‘.filter .filter 表示且‘‘‘
    persons = Person.objects.exclude(p_age__lt=30).exclude(p_age__gt=80)
    ‘‘‘age 大于 30 的 , 小于 80 的,exclude 除了,不包含的意思 ‘‘‘
    print(type(persons))
    ‘‘‘<class ‘django.db.models.query.QuerySet‘> 结果集类型‘‘‘
    context = {
        ‘persons‘:persons
    #     传递到前端代码中
    }
    return render(request,‘person_list.html‘,context = context)

注: 
.filter(表示包含的条件)
.filter(表示包含的条件).filter(表示包含的条件)  表示两个条件都需要满足,且

获取到的数据都是 QuerySet 类型,放入到值中,使用网页进行遍历
这里使用的是 render ,不是 HttpResponse

p_age__gt 表示大于
p_age__lt 表示小于

Django学习路11_向数据库中添加  和 获取指定条件数据

 

 


templates 中person_list.html 内容

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h2>Person 大于 30 的 , 小于 80 的 :</h2>
<h4>
    {% for person in persons %}
    <li>
        姓名:{{ person.p_name }} 年龄{{ person.p_age }}
    </li>
    {% endfor %}
</h4>
</body>
</html>

注:
在 for 循环的时候两边有 {%    %}
正常单个语句时,使用的是 {{ 属性}}
最后要加上 {% endfor %}

此处的 属性为数据库表中的元素

不要忘了的点:

urlpatterns = [
    url(r‘addpersons‘,views.add_persons),
    url(r‘getpersons‘,views.get_persons),
    url(r‘addperson‘,views.add_person)
]

在 urls.py 中 ,进行注册

启动命令

python manage.py runserver

使用类方法创建单个对象示例:

在 models.py 中自定义类方法 create 进行创建

    @classmethod
    def create(cls,p_name,p_age = 100,p_sex = True):
        # 自定义方法进行创建对象,可以包含表达式
        return cls(p_name = p_name,p_age = p_age,p_sex = p_sex)

views.py 中 add_person 函数

def add_person(request):
    person = Person.create(‘Lao‘)
    person.save()
    return HttpResponse("创建成功")

Django学习路11_向数据库中添加  和 获取指定条件数据Django学习路11_向数据库中添加  和 获取指定条件数据

 


2020-05-09

 

 

 

相关推荐