学神python全栈学习笔记---5 ORM单表操作和查询API
- 不同数据库定义格式
Sqlite3:
mysql:
安装完新的模块需要重新打开pycharm,本地环境可以不重新打开,远程必须重新打开。
Mysql创建数据库:
- ORM建表使用
同步数据库之前,必须要先生成迁移文件:
python manage.py makemigrations
同步到数据库:
python manage.py migrate
查看迁移的信息(前面有X的代表同步成功):
python manage.py showmigrations
pycharm打开manager:
- ORM概念
用于实现面向对象编程语言里不同类型系统的数据之间的转换,换句话说,就是用面向对象的方式去操作数据库的创建表和增删改查的操作。
优点:
- ORM使我们的通用数据库交互变得更简单,完全不用考虑SQL语句,正意义上实现快速开发。
- 可以避免一些新手程序员写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
- ORM单表的增删改查
想使用ORM之前,需要把你使用的表的类,导入到你的视图中
- 添加数据(两种方式)
Less1:
Less2:
字典批量添加数据:
- 删除数据
- 更改数据(两种方式)
Less1(不推荐使用):
Less2:
Queryset集合才会有update。
Bookobj是没有update操作的,只能覆盖成员变量,调用save方法。
- 查询数据
Queryset:
1.可以切片使用:不支持负的索引
2.可迭代对象
3.惰性查询
4.缓存机制
- 打印出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',
},
}
}