Django数据库操作
2016-06-21 15:50
246 查看
刚学到Django的数据库操作,把它记录下来,方便以后查看: 在Django中定义数据库表,并使用Django提供的方法来对数据库进行操作(增、删、改、查) 1、定义3个数据库表:
class Group(models.Model): name = models.CharField(max_length=50,default=None) class User(models.Model): name = models.CharField(max_length=50,default=None) Email = models.CharField(max_length=50,default=None) group_relation = models.ManyToManyField('Group',default=None) #生成多对多表 class Asset(models.Model): hostname = models.CharField(max_length=50,default=None) create_date = models.DateTimeField(auto_now_add=True) update_date = models.DateTimeField(auto_now=True)
2、向数据库中添加内容
Asset.objects.create(hostname=name) #多对多添加数据 u1 = User.objects.filter(id=1) g1 = Group.objects.filter(id=1) u1.group_relation.add(g1) g1.user_set.add(u1)
3、从数据库中删除内容
Asset.objects.get(id=id).delete() # 多对多删除数据 u1 = User.objects.filter(id=1) g1 = Group.objects.filter(id=1) u1.group_relation.delete(g1) g1.user_set.delete(u1)
4、修改数据库中的内容
#根据id修改hostname obj = Asset.objects.get(id=id) obj.hostname=hostname obj.save() #所有id大于传入参数的,就将hostname修改 Asset.objects.filter(id__gt=id).update(hostname=hostname)
5、查询数据库中的内容
# 多对多获取数据 u1 = User.objects.filter(id=1) g1 = Group.objects.filter(id=1) u1.group_relation.all() u1.group_relation.all().filter(id=1) g1.user_set.all() g1.user_set.all().filter(email='') #查找所有id大于传入参数的数据 Asset.objects.filter(id__gt=id) #查找所有hostname包含传入参数的数据 Asset.objects.filter(hostname__contains=hostname) #查找类型id等于5的所有用户信息---type__id:type表示UserInfo表中的type字段(对应type表的外键),__id表示与userinfo表相关联的type表的id UserIfo.objects.filter(type__id = 5) #取出所有数据 Asset.objects.all() #取出所有数据的前两条数据 Asset.objects.all()[0:2] # 取出所有数据,并进行排序---id:按id正序排列,倒序就用'-id' Asset.objects.all().order_by('id') # 取出所有数据中的id和hostname列数据 Asset.objects.all().values('id','hostname')
相关文章推荐
- mysql存储过程中使用事务
- CentOS7安装Oracle 11gR2 图文详解
- 将xml文件作为一个小的数据库,进行学生的增删改查的简单实例
- 仅使用MYSQL文件.frm恢复表结构
- mysql 导入导出函数及存储过程
- 数据库创建计划任务
- mysql 复制
- mysql性能优化之swap占用高
- mysql 语句
- 后台数据库的增删改查 项目的
- mysql binlog 数据介绍
- PLS-00306:错误解决思路 - OracleHelper 执行Oracle函数的坑
- 浅谈PetShop之使用存储过程与PLSQL批量处理(附案例)
- MySQL性能优化的最佳21条经验
- 对LFW数据库的翻译【1】
- 针对mysql中分表批量添加字段
- MySQL表中的字符串替换
- linux oracle DISPLAY 安装界面解决方案
- mysql权限
- [置顶] 谈谈 Memcached LRU