刚学到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')
												

Django数据库操作的更多相关文章

  1. 从命令行运行django数据库操作

    从命令行运行django数据库操作,报错: django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_T ...

  2. Django数据库操作(增删改查)

    Django数据库操作(增删改查) 创建数据库中的一个表 class Business(models.Model): #自动创建ID列 caption = models.CharField(max_l ...

  3. Django 数据库操作

    Django 数据库操作 Django运算表达式与Q对象/F对象 1 模型查询 概述: 1 查询集:表示从数据库中获取的对象的集合 2 查询集可以有多个过滤器,通过 逻辑运算符连接 3 过滤器就是一个 ...

  4. django数据库操作和中间件

    数据库配置 django的数据库相关表配置在models.py文件中,数据库的连接相关信息配置在settings.py中 models.py相关相关参数配置 from django.db import ...

  5. 11.Django数据库操作(查)

    django.db.models.query.QuerySet1.可迭代2.可切片 官方文档:https://docs.djangoproject.com/en/1.9/ref/models/quer ...

  6. django 数据库操作详解

    Django配置使用mysql数据库 修改 settings.py 中的 DATABASES  注意:django框架不会自动帮我们生成mysql数据库,所以我们需要自己去创建. DATABASES ...

  7. Python Django 数据库操作

    1. 建立app 在自己的工程项目目录下输入: python manage.py startapp myapp(你想建立的app名称) 建立一个叫myapp的app 这样,在你的工程项目目录下会出现一 ...

  8. Django 数据库操作进阶F和Q操作

    Model中的F F 的操作通常的应用场景在于:公司对于每个员工,都涨500的工资.这个时候F就可以作为查询条件 1 2 3 from django.db.models import F models ...

  9. Python菜鸟之路:Django 数据库操作进阶F和Q操作

    Model中的F F 的操作通常的应用场景在于:公司对于每个员工,都涨500的工资.这个时候F就可以作为查询条件 from django.db.models import F models.UserI ...

随机推荐

  1. igv

    integrative genomics viewer 下载: http://www.broadinstitute.org/igv/download 下载前要注册 导入参考基因组:http://www ...

  2. (基础篇)PHP与Web页面交互

    PHP与Web页面交互是实现PHP网站与用户交互的重要手段.在PHP中提供了两种与Web页面交互的方法,一种是通过Web表单提交数据,另一种是通过URL参数传递. 这里我们将详细讲解表单的相关知识,为 ...

  3. Codeforces Round #297 (Div. 2)

    A题 题目大意: 给你一个字符串,奇数的时候是钥匙,偶数的时候是门,一把钥匙只能开对应的门,然后问你最少额外需要多少把钥匙. 分析: 用的数组记录一下就行,(注意的是先开门,再拿钥匙!开始错在这里了, ...

  4. Linux源代码编译安装tree命令

    wget ftp://mama.indstate.edu/linux/tree/tree-1.6.0.tgz .tgz cd tree- make && make install

  5. shell 脚本实战笔记(6)--集群环境配置检测

    1). 背景: 集群部署的时候, 需要一致的配置和环境设置. 对于虚拟机集群, 可以借助镜像拷贝, 复制和还原集群机器. 对与物理机集群而言, 则不一样, 如果机器一多, 多人去操作和配置, 对于成熟 ...

  6. DEF2015丨腾讯优测携专业云测试服务,亮相中国(成都)数字娱乐节

    近年来,随着APP的大量涌出,“软件质量保证”这个话题又被拉进了人们的视野.作为备受用户信赖的移动云测试平台,腾讯优测受邀参加11月19日-21日由GMGC主办的中国(成都)数字娱乐节(简称DEF20 ...

  7. Response.AddHeader使用实例

    1.文件下载,指定默认名Response.AddHeader("content-type","application/x-msdownload"); // 限制 ...

  8. 光流算法:Brox算法(转载)

    参考论文:1. High Accuracy Optical Flow Estimation Based on a Theory for Warping, Thomas Box, ECCV20042. ...

  9. 150. Evaluate Reverse Polish Notation

    Valid operators are +, -, *, /. Each operand may be an integer or another expression. Some examples: ...

  10. Spring中MultipartHttpServletRequest实现文件上传 生成缩略图

    转贴自:http://my.oschina.net/nyniuch/blog/185266 实现图片上传  用户必须能够上传图片,因此需要文件上传的功能.比较常见的文件上传组件有Commons Fil ...