学神python全栈学习笔记---5 ORM单表操作和查询API

  1. 不同数据库定义格式

Sqlite3

学神python全栈学习笔记---5 ORM单表操作和查询API_第1张图片

 

 

mysql:

安装完新的模块需要重新打开pycharm,本地环境可以不重新打开,远程必须重新打开。

Mysql创建数据库:

学神python全栈学习笔记---5 ORM单表操作和查询API_第2张图片

 

学神python全栈学习笔记---5 ORM单表操作和查询API_第3张图片

学神python全栈学习笔记---5 ORM单表操作和查询API_第4张图片

  1. ORM建表使用

学神python全栈学习笔记---5 ORM单表操作和查询API_第5张图片

同步数据库之前,必须要先生成迁移文件:

python manage.py makemigrations

 

   同步到数据库:

   python manage.py migrate

   学神python全栈学习笔记---5 ORM单表操作和查询API_第6张图片

 

   查看迁移的信息(前面有X的代表同步成功):

   python manage.py showmigrations

   学神python全栈学习笔记---5 ORM单表操作和查询API_第7张图片

 

   pycharm打开manager:

   学神python全栈学习笔记---5 ORM单表操作和查询API_第8张图片

 

 

  1. ORM概念

用于实现面向对象编程语言里不同类型系统的数据之间的转换,换句话说,就是用面向对象的方式去操作数据库的创建表和增删改查的操作。

学神python全栈学习笔记---5 ORM单表操作和查询API_第9张图片

优点:

  1. ORM使我们的通用数据库交互变得更简单,完全不用考虑SQL语句,正意义上实现快速开发。
  2. 可以避免一些新手程序员写sql语句带来的性能问题。

 

select name from user;

select * from user;

select * from user a, group b where a.id = b.id;

 

数据库:oracle, mysql, sqlite, trs, mangodb, redis, sqlserver

 

  1. ORM单表的增删改查

想使用ORM之前,需要把你使用的表的类,导入到你的视图中

 

  1. 添加数据(两种方式)

Less1

 

学神python全栈学习笔记---5 ORM单表操作和查询API_第10张图片

 

Less2

 

学神python全栈学习笔记---5 ORM单表操作和查询API_第11张图片

字典批量添加数据:

 

 

学神python全栈学习笔记---5 ORM单表操作和查询API_第12张图片

  1. 删除数据

学神python全栈学习笔记---5 ORM单表操作和查询API_第13张图片

 

  

  1. 更改数据(两种方式)

Less1(不推荐使用):

 

学神python全栈学习笔记---5 ORM单表操作和查询API_第14张图片

 

Less2:

 

学神python全栈学习笔记---5 ORM单表操作和查询API_第15张图片

Queryset集合才会有update。

Bookobj是没有update操作的,只能覆盖成员变量,调用save方法。

  1. 查询数据

Queryset:

    1.可以切片使用:不支持负的索引

    2.可迭代对象

    3.惰性查询

    4.缓存机制

 

学神python全栈学习笔记---5 ORM单表操作和查询API_第16张图片

  1. 打印出ORM的SQL语句(添加到seting文件里就可以了)

LOGGING = 

OGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'console':{
            'level':'DEBUG',
            'class':'logging.StreamHandler',
        },
    },
    'loggers': {
        'django.db.backends': {
            'handlers': ['console'],
            'propagate': True,
            'level':'DEBUG',
        },
    }
}

 

 

 

 

 

你可能感兴趣的:(django)