[Django学习笔记 - 12]:数据库操作

简介: [Django学习笔记 - 12]:数据库操作

数据库操作(添加)


前期工作:


1、在settings.py文件中进行数据库的配置


2、在子应用中的__init__.py文件中进行数据库的连接


3、创建好模型类并添加到数据库中


添加数据的操作


   数据库的添加有两种方法:


   第一种用实例对象的save方法添加(Family为模型类):


   fam = Family(键=值,键=值, ……)


   fam.save()


   当再次添加时需要在前面添加上一个id号

   fam = Family(2, 值,值, ……)(如果不写键名则值要和键名的位置对应)

   fam.save()


   第二种:模型类.Manager对象.create (若不设置Manager对象则默认为objects)

   Famliy.objects.create(键=值, 键=值)


   当再次添加时不需要在前面添加上一个id号



  • 在终端中输入:python manage.py shell,进入shell环境


  • 从子应用中导入模型类(例):from afir.models import Family


  • 使用第一种方法添加:


51d94e1bb9334828900eb5264c3b63d3.png

0955aae79dd741f999f0f13fa2305cb2.png


5961a8d1cdbc46d8aa7ddb67440061d2.png


使用create方法添加


87e5b81f6beb4408937d6c555cfb992a.png

ac9501c5c6274f5dbfdb70dda04ba149.png




基本查询


前期准备:


1、在子应用中创建路由文件,在主路由文件中进行路由的分发


2、views.py中写上视图函数


Family.fam.filter(age=20) ——表示的是获取age为20的查询集对象

eb9f2fb99521451ca2a9117452218333.png

3a1630cf2f5d4999ac39434b6bb29022.png

8280e7f797954c328488fef11db4eb0f.png

Family.fam.exclude(age=20) ——表示的是获取除了age为20的查询集对象

7b26ba3591da411ca65626b6be799c77.png


模糊查询


def orm_options(request):
    obj = Family.fam.filter(name__contains='e')  # 获取name中包含字符e的对象
    obj = Family.fam.filter(name__startswith='A')  # 获取name中首字符为A的对象
    obj = Family.fam.filter(name__endswith='d')  # 获取name中包尾字符为d的对象
    obj = Family.fam.filter(id__in=[1, 2, 3])  # 获取id为1,2,3的对象
    # obj = Family.fam.filter(name__in='Zhangsanlisisdga')  # 如果查询范围为字符串形式时,是无法进行字符串的模式匹配
    print(obj)
    return HttpResponse(obj)


比较查询


def orm_options(request):
    # obj = Family.fam.filter(id__gt=4)   # gt,表示大于
    # obj = Family.fam.filter(id__gte=4)   # gte,表示大于等于
    # obj = Family.fam.filter(id__lt=4)   # gt,表示小于
    obj = Family.fam.filter(id__lte=4)   # gt,表示小于等于
    print(obj)
    return HttpResponse(obj)


相关文章
|
3月前
|
存储 关系型数据库 MySQL
Linux C/C++ 开发(学习笔记八):Mysql数据库图片存储
Linux C/C++ 开发(学习笔记八):Mysql数据库图片存储
49 0
|
3月前
|
关系型数据库 MySQL 数据库
Linux C/C++ 开发(学习笔记七):Mysql数据库C/C++编程实现 插入/读取/删除
Linux C/C++ 开发(学习笔记七):Mysql数据库C/C++编程实现 插入/读取/删除
49 0
|
4月前
|
存储 关系型数据库 MySQL
Python Django框架下将MySQL数据库的内容在网页上动态展示(修订版-2021-05-17)
Python Django框架下将MySQL数据库的内容在网页上动态展示(修订版-2021-05-17)
30524 0
|
3月前
|
前端开发 数据库 Python
使用 Python 的 Web 框架(如 Django 或 Flask)来建立后端接口,用于处理用户的请求,从数据库中查找答案并返回给前端界面
【1月更文挑战第13天】使用 Python 的 Web 框架(如 Django 或 Flask)来建立后端接口,用于处理用户的请求,从数据库中查找答案并返回给前端界面
86 7
|
6天前
|
Python
基于Django的Python应用—学习笔记—功能完善
基于Django的Python应用—学习笔记—功能完善
|
8天前
|
关系型数据库 API 数据库
Django中的数据库事务管理:确保数据一致性
【4月更文挑战第15天】Django框架提供强大的数据库事务管理,确保ACID属性,保证数据一致性和完整性。文章深入讨论了Django事务管理,包括使用`@transaction.atomic`装饰器和`transaction.atomic()`上下文管理器手动控制事务,以及低级API进行精细管理。注意避免长时间事务、选择合适隔离级别、正确处理异常及了解数据库特性。掌握这些技巧对构建可靠Web应用至关重要。
|
4月前
|
SQL 数据库 开发者
Python Web 开发: 什么是 Django ORM?如何使用它进行数据库操作?
Python Web 开发: 什么是 Django ORM?如何使用它进行数据库操作?
|
11天前
|
关系型数据库 MySQL 数据库连接
Django(四):Django项目部署数据库及服务器配置详解(MySQL)
Django(四):Django项目部署数据库及服务器配置详解(MySQL)
33 11
|
1月前
|
存储 SQL 数据库
django如何连接sqlite数据库?
django如何连接sqlite数据库?
41 0
|
2月前
|
缓存 NoSQL 关系型数据库
数据库缓存一致性学习笔记(一)
数据库缓存一致性学习笔记(一)