Django 用户认证 用户 邮箱登录 邮箱注册 ORM or,and,not form.py FORM ModelForm Paginator 分页 HTMl JQuery 定位元素 ajax django切片 restfulapi 跨域 Ubantu Python Mysql Scrapy 爬虫 导出 Python读写 Pycharm 破解 session re sqlit3 生成式 其他 Prism 富文本 CSS Nginx 部署 请求头 抓包 协议 selenium Ubuntu 宝塔 AI Comfy-ui ollama dify open-webui Git docker
Django ORM 操作方法(增删改查)
张建行 2021年6月27日 02:09 17 文章标签: Django ORM or,and,not FORM ModelForm Ubantu Python 导出

from django.shortcuts import render
from .models import People
from django.http import HttpResponse

"""
Django框架的数据库操作:这里的数据库操作并没有采用原始的sql语句的形式,而是采用了ORM技术实现数据的增删改查。这里的ORM指的是对象关系映射(Object Relational Mapping),它是将表与表之间的关系映射为了对象与对象之间的关系,在这里操作对象就是在操作表。所有表的增删改查都是基于对象来完成的。
关系型数据库:多表联查。表与表之间的关系非常重要,表关系映射变成对象关系映射。

通过这种方式操作数据库,可以有效的防止SQL语句注入的风险。
insert into;
delete from student;
() values ();
"""

def insert_data(request):
    # 第一种添加数据
    People.objects.create(user_name='张三', user_height=100)

    # 第二种添加数据
    p = People(user_name='zs')
    p.save()

    # 第三种添加数据
    p = People()
    p.user_name = '李四'
    p.user_height = 170
    p.save()

    # 第四种添加数据
    # 在创建新的数据之前,先查询数据库中是否已经存在对应的数据,如果已经存在就不再创建这个对象了。可以起到一定的去重作用。
    People.objects.get_or_create(user_name='lisi', user_height=180)

    return HttpResponse('数据添加成功')

def select_data(request):
    # 数据的查询
    # 1. 单条数据查询: get(),参数就是查询条件,可以是类中的属性。
    p = People.objects.get(user_name='lisi')

    # 2. 多条数据查询:filter(),参数就是查询条件,查询结果是一个结果集QuerySet。
    p = People.objects.filter(user_height=170).first()

    # 3. 查询所有数据:all(),返回值也是一个结果集QuerySet。
    p = People.objects.all()

    return render(request, 'index.html', {'p': p})

    # 数据的修改
    p = People.objects.get(user_name='lisi')
    p.user_height = 80
    p.save()

    # update():参数就是更新的数据。这个函数是更新所有的数据。
    People.objects.update(user_height=180)

    # 数据的删除
    People.objects.get(user_name='lisi').delete()

    return HttpResponse('数据修改成功!')