django orm
""" orm:对象关系映射 """ orm目的就是为了能够让不懂SQL语句的人通过python面向对象的知识点也能够轻松自如的操作数据库 面向对象的类 》》》 表 对象 》》》 表里面的数据 对象点属性 》》》 字段对应的值 # 缺陷: sql 封装死了 有时候查询速度很慢
orm实操
1.我们的模型类需要写在应用下的models.py文件中 class User(models.Model): # id int primary key auto_increment id = models.AutoField(primary_key=True) # name varchar(32) name = models.CharField(max_length=32) # CharField必须要加max_length参数 # age int age = models.IntegerField() ************************************************************************************************* 2.数据库迁移命令 1.将数据库修改操作先记录到小本本上(对应应用下的migrations文件夹) python3 manage.py makemigrations D:\mysite1>python manage.py makemigrations Migrations for 'app01': app01\migrations\0001_initial.py - Create model User 2.真正的执行数据库迁移操作 python3 manage.py migrate 第一次执行数据库迁移命令Django默认需要创建依赖表 表名自动加前缀 目的是为了避免多个应用出现表名冲突的情况发生 # 只要动了models.py中跟数据库相关的代码就必须重新执行上述两条命令 ************************************************************************************************** 3.针对主键字段 class User1(models.Model): # 如果你不指定主键 那么orm会自动帮你创建一个名为id的主键字段 # 如果你想让主键字段名不叫id 叫uid、sid、pid等需要自己手动指定 username = models.CharField(max_length=32)
字段的增删改查
# 增 pwd = models.IntegerField('密码', null=True) # 该字段可以为空 is_delete = models.IntegerField(default=0) # 默认值 # 改 直接改代码然后执行数据库迁移命令即可 # 删 注释掉代码然后执行数据库迁移命令即可
数据的增删改查
# 1.查询数据 # select * from user where name=username and pwd=password; # res = models.User.objects.filter(name=username) # <QuerySet [<User: User object>]> 列表套数据对象 user_obj = models.User.objects.filter(name=username,pwd=password).first() # <QuerySet [<User: User object>]> 列表套数据对象 # user_obj = res[0] # 2.添加数据 # insert into user(name,pwd) values(username,password); models.User.objects.create(name=username,pwd=password) # 3.查询所有的数据 # select * from user; 作了分页处理 user_data = models.User.objects.all() # [obj1,obj2,obj3,obj4] return render(request, 'home.html',{'user_data':user_data}) # 4.修改数据 models.User.objects.filter(id=edit_id).update(name=username,pwd=password) # 第二种修改方式 edit_obj.name = username edit_obj.pwd = password edit_obj.save() # 5.删除数据 models.User.objects.filter(id=delete_id).delete()
越往后学越简单 只不过过程是复杂的