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

Posted hany-postq473111315

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 方法进行创建

技术图片

 

 


获取数据

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 表示小于

技术图片

 

 


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(raddpersons,views.add_persons),
    url(rgetpersons,views.get_persons),
    url(raddperson,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("创建成功")

 

技术图片技术图片

 

 


2020-05-09

 

 

 

以上是关于Django学习路11_向数据库中添加 和 获取指定条件数据的主要内容,如果未能解决你的问题,请参考以下文章

Django学习路30_view中存在重复名时,取第一个满足条件的

Django学习路30_view中存在重复名时,取第一个满足条件的

Django学习路19_is_delete属性,重写类方法,显性隐性属性

Django学习路19_is_delete属性,重写类方法,显性隐性属性

Django学习路31_使用 locals 简化 context 写法,点击班级显示该班学生信息

Django学习路13_创建用户登录,判断数据库中账号名密码是否正确