django->model模型操作(数据库操作)
一、字段类型

二、字段选项说明

三、内嵌类参数说明
abstract = True
db_table = 'table_name' #表名,默认的表名是app_name+类名
ordering = ['id','-create_time'] #排序规则,按照哪个字段排序,加上负号是降序
unique_together = ('name','id_card') #联合主键
verbose_name = '用户表'#表的中文名
verbose_name_plural = '用户表'#表的中文名
四、同步到数据库
python manage.py makemigrations #生成迁移文件
python manage.py migrate #同步到数据库中
五、QuerySet增删改查
#创建
obj = models.Article.objects.create(title='title_model',desc='desc1',content='content')
obj.title = 'new_title'
obj.save()
obj2 = models.Article(title='title_model',desc='desc1',content='content')
obj2.save()
#查询
models.Article.objects.get(id=1)#单个查询,条件只能是唯一的,否则会报错
models.Article.objects.filter(title='xiaohei',desc='desc1')#多条件查询,返回多条数据,写多个参数就是and
models.Article.objects.all().filter(title='xiaohei').values()#字典显示
models.Article.objects.all().count()#个数
models.Article.objects.raw('select * from user_article;') # 执行原生sql
models.Article.objects.filter(title__contains='模糊查询')
models.Article.objects.filter(title__endswith='开头')
models.Article.objects.filter(title__startswith='结尾')
models.Article.objects.filter(title__in=['title1','title2'])
models.Article.objects.filter(title__isnull=True)#为空
models.Article.objects.exclude(title__in=['title1','title2'])#排除
models.Article.objects.filter(read_count__gt=1)
models.Article.objects.filter(read_count__gte=1)
models.Article.objects.filter(read_count__lt=1)
models.Article.objects.filter(read_count__lte=1)
models.Article.objects.filter(read_count__range=(1,2,3))
修改
art = models.Article.objects.get(pk=1)
art.title = 't1223'
art.save()
models.Article.objects.filter(title__isnull=True).update(title='小黑') #批量修改
models.Article.objects.all().update(title='全部修改')
删除
models.Article.objects.get(pk=1).delete()
models.Article.objects.filter(title__isnull=True).delete()
models.Article.objects.all().delete()
#外键操作
obj = models.Article.objects.get(id=1)
obj.nav_id = 2 #获取外键信息
print(obj.nav.name) #获取外键信息
models.Article.objects.filter(nav__name='abc') #按照外键的字段筛选,外键名称__字段名
反向查询
art_obj = models.Article.objects.get(pk=1)
nav_obj = models.Nav.objects.get(pk=2)
print(nav_obj.article_set.filter())#外键反向查询
print(nav_obj.article_set.count())#外键反向查询
nav_obj.article_set.add(art_obj)#添加
nav_obj.article_set.remove(art_obj)#删除
nav_obj.article_set.clear()#清空
多对多
models.CaseSet.objects.create(name='主流程用例',desc='主流程')
models.CaseSet.objects.create(name='冒烟用例',desc='冒烟用例')
models.Case.objects.create(title='登录')
models.Case.objects.create(title='注册')
models.Case.objects.create(title='订购')
models.Case.objects.create(title='支付')
models.Case.objects.create(title='充值')
models.Case.objects.create(title='发货')
c1 = models.Case.objects.get(pk=1)
c2 = models.Case.objects.get(pk=2)
c3 = models.Case.objects.get(pk=3)
s1 = models.CaseSet.objects.get(pk=1)
s2 = models.CaseSet.objects.get(pk=2)
s2.case_set.add(c2,c3)
s2.case_set.remove(c2,c3)
s2.case_set.clear()#清空
print(c2.case_set.all()) #查看用例在几个集合里面
print(s2.case_set.all()) #查看集合里面有多少用例
一对一
from hashlib import md5
models.Account.objects.create(account_id=md5('niuhanyang'.encode()).hexdigest())
models.Account.objects.create(account_id=md5('niuhanyang2'.encode()).hexdigest())
models.Account.objects.create(account_id=md5('niuhanyang3'.encode()).hexdigest())
models.User.objects.create(username='niuhanyang',password='123456',account_id='58e006ecfce801c5e98311c96d32510f')
u = models.User.objects.get(pk=1)
print(u.account_id)
print(u.account.money)
acc = models.Account.objects.get(pk='58e006ecfce801c5e98311c96d32510f')
print(acc.user.username)
print(acc.user.password)
表结构如下图:
一对一,user表和account表

nav表,外键,一对多

case表和case_set表

django->model模型操作(数据库操作)的更多相关文章
- Django1.11模型类数据库操作
django模型类数据库操作 数据库操作 添加数据 1,创建类对象,属性赋值添加 book= BookInfo(name='jack',pub_date='2010-1-1') book.save() ...
- django Model模型二及Model模型对数据库的操作
在django模型中负责与数据库交互的为Model层,Model层提供了一个基于orm的交互框架 一:创建一个最基本的Model from __future__ import unicode_lite ...
- 循序渐进Python3(十二) --2-- web框架之django简单实现oracle数据库操作
在 Django 中构建 Oracle 数据库支持的 Web 应用程序 了解如何配置 Django 以便与 Oracle 数据库交互,并使用 ORM 进行数据库连接. 产能在软 ...
- django基础 -- 5. ORM 数据库操作
一. ORM 对象关系映射 类 ------ 表 类对象 ------ 记录 类属性 ------ 字段 二. 连接数据库配置 1.在 setting.py 文件中重新设置 ...
- Django入门4: ORM 数据库操作
大纲 一.DjangoORM 创建基本类型及生成数据库表结构 1.简介 2.创建数据库 表结构 二.Django ORM基本增删改查 1.表数据增删改查 2.表结构修改 三.Django ORM 字段 ...
- ThinkPHP3创建Model模型--对表的操作
创建Model模型 把"Home/Model"文件夹剪切到Application文件夹下,让Home和Admin共同使用. 第一种实例化模型的方法 第二种实例化模型的方法 第三种实 ...
- Django对于模型的数据操作
一.引入模型的包 from myApp.models import Grades,Students 二.查询所有数据 #objecs是类的隐藏属性:类名.objects.all()可以查询所有数据 G ...
- Django框架----models.py(数据库操作文件)
利用一个中间模块 帮助我们连接数据库,写SQL语句,执行SQL语句,拿到结果 models.py 一.数据的对应关系 1. 类 ---> 表 2. 对象 ---> 数据行 3. 属性 -- ...
- Django Model模型的实战操作笔记
Model模型的实战操作笔记 1. 创建数据库和表 进入MySQL数据库创建数据库:mytest 进入数据库创建数据表:mytest_users CREATE TABLE `mytest_users` ...
- Django Model 模型
参考: https://www.runoob.com/django/django-model.html https://www.cnblogs.com/taosiyu/p/11260000.html ...
随机推荐
- 使用GUI工具Portainer.io管控Docker容器
背景 5年前容器技术扑面而来,如今已经成为面向云原生开发的基础架构,基于微服务的设计需要部署大量容器,同时强调了友好快速的管理容器. 是时候推荐一个轮子Portainer.io:提供GUI界面的容器管 ...
- Spring注解 - AOP 面向切面编程
基本概念: AOP:Aspect Oriented Programming,即面向切面编程 指在程序运行期间动态的将某段代码切入到指定方法指定位置进行运行的编程方式 前置通知(@Before):在目标 ...
- iview Checkbox 多选框 单个的时候 如果需要change 以后进行赋值 就要用value 不要用v-modal 然后用updateModel 方法
noSuchSituationSetFalse () { this.noSuchSituationOne = false this.$refs.noSuchSituationRef.updateMod ...
- HTTP请求中Get和Post请求的区别?
分类 Get的请求方式 1.直接在浏览器地址栏输入某个地址. 2.点击链接地址. 3.表单的默认提交方式或者设置为method="get". Post的请求方式 1.设置表单的me ...
- mysql中的on
左右连接是一个性质所以我这里以左连接为例,写了一个小例子: 用到连接的时候on会常用到, on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录. 简单解释就是假设两个 ...
- Python-时间戳、元组时间的格式、自定义时间格式之间的转换
一.时间戳.元组时间的格式.自定义时间格式之间的转换 1.下面是三者之间的转换关系: 2.代码如下: import time import datetime print(time.time()) #获 ...
- IdentityServer4源码解析_5_查询用户信息接口
协议简析 UserInfo接口是OAuth2.0中规定的需要认证访问的接口,可以返回认证用户的声明信息.请求UserInfo接口需要使用通行令牌.响应报文通常是json数据格式,包含了一组claim键 ...
- Python第三章-输入输出和运算符
输入输出和运算符 一.输入和输出 1.1 输出 `print()`函数用来向终端输出数据(其实也可以向文件输出数据,后面再讲) 可以传递多个参数,则输出的时候 python 会把多个参数的值用空格隔开 ...
- stm32CubeMx+TrueSTUDIO+uc/os-III移植开发(二)
(三)复制相关文件 (1)继上次的代码生成后会显示如下的图 点击第一个,打开文件夹如下 (2)新建文件夹UCOSIII 在UCOSIII文件夹下,新建如下的文件夹 (3)将uc/os源文件中 Micr ...
- Apple的Core ML3简介——为iPhone构建深度学习模型(附代码)
概述 Apple的Core ML 3是一个为开发人员和程序员设计的工具,帮助程序员进入人工智能生态 你可以使用Core ML 3为iPhone构建机器学习和深度学习模型 在本文中,我们将为iPhone ...