Django 中orm的第一次举荐
Django
ORM :对象--关系--映射
创建Django准备工作:
1.在数据库创建你需要的数据库
2.在项目models里创建模型(就是python写的类,也可以说是python写的数据库)
class Book(models.Model):
id=models.AutoField(primary_key=True)
title=models.CharField(max_length=32)
state=models.BooleanField()
pub_date=models.DateField()
price=models.DecimalField(max_digits=8,decimal_places=2)
publish=models.CharField(max_length=32)
3.setting配置操作(以前的DATABASES注释掉,拷贝下面代码上去)
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME':'bms', # 要连接的数据库,连接前需要创建好
'USER':'root', # 连接数据库的用户名
'PASSWORD':'', # 连接数据库的密码
'HOST':'127.0.0.1', # 连接主机,默认本级
'PORT':3306 # 端口 默认3306
}
}
4.在项目下__init__里添加下面这段代码:
import pymysql
pymysql.install_as_MySQLdb()
5.以上4步完成之后数据库并没有你的表,我们还得进行数据库的迁移操作,在pycharm终端里直接输入
1.python manage.py makemigrations #进行数据同步操作
2.python manage.py migrate #进行python写的数据库编译成sql语句
5.5 注意!为了确保INSTALLED_APPS中写入我们创建的app名称,我们的检查一下
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
"book" #这个就是我们的项目数据库中表的名称
]
6.这样,我们就可以创建成功了!前期的准备工作完成!
单表操作:
增
def addbook(request)
方式一:
Book.objects.create(title='python',price=100,publish="苹果出版社",pub_date="2012-12-12")
方式二:
book_obj = Book(title='python',price=100,publish="苹果出版社",pub_date="2012-12-12")
book_obj.save()
return HttpResponse('ok')
删
直接查到你要删除的数据后边直接+delete() 例如:删除掉python数据
ret = Book.objects.filter(title='python').delete() #没有返回值
print(ret)
改
查到你要修改的数据后边+update() 括号里写你要修改的数据,例如:把python价格修改成2000
bookinfo= Book.object.filter(title='python')update(price=2000)
print(bookinfo)
查
1.all() 查询所有
ret = Book.objects.all()
print(ret)
2.filter() 按照查询匹配的对象
ret = Book.objects.filter(title='python')
print(ret)
3.get() 只能查到只有一个对象的数据,多个对象或者没有则直接报错
ret = Book.objects.get(title='python')
print(ret)
4.exclude() 只要没有比配的都被查出来
ret = Book.objects.exclude(title='python')
print(ret)
5.order_by() 对查询结果进行排序
ret = Book.objects.filter(title='c#').order_by('-price') #c#这本书的排序就是price=200在前面
6.reverse() 对查询结果进行反向排序,ord_by 需要加参数 reverse 则不需要
ret=Book.objects.all().order_by('price').reverse()
print(ret)
7.first()
ret = Book.objects.filter(title='python').last()
print(ret)
8.last()
ret = Book.objects.filter(title='python').last()
print(ret)
9.count() 数数
ret = Book.objects.filter(title='python').count()
print(ret)
10.exists() 如果jueryset 里有值就返回 True
ret = Book.objects.exists()
print(ret)
11.values()返回的是一个queryset对象,里边是字典方式存储 [{'title': '四有青年'}, {'title': 'python'}...]
ret = Book.objects.all().values('title')
print(ret)
12.values_list 返回的是一个queryset对象,里边是元组形式存储 [('四有青年',), ('python',)...]
ret = Book.objects.all().values_list('title')
print(ret)
13.distinct 从返回的数据中除掉重复的数据<QuerySet [('中国青年报',), ('人民出版社',), ('人民日报',)]>
ret = Book.objects.all().values_list('publish').distinct()
print(ret)
模糊查询
1.price__in=[100,124,200,300] 在这里的都能被查到
ret = Book.objects.filter(price__in=[100,124,200,300])
print(ret)
2.price__gt=200 大于价格200的书籍
ret = Book.objects.filter(price__gt=200)
print(ret)
3.price__gt=200 小于价格200的书籍
ret = Book.objects.filter(price__lt=200)
print(ret)
4.price__range=[100,500] 价格在100--500之间的书籍
ret = Book.objects.filter(price__range=[100, 500])
print(ret)
5.title__contains='python' 查看python的书籍
ret = Book.objects.filter(title__contains='java')
print(ret)
6.
ret = Book.objects.filter(title__icontains='python')
print(ret)
7. 按照年查询 查询2018年10月份的书
ret = Book.objects.filter(pub_date__year=2018,pub_date__month=10)
print(ret)
Django 中orm的第一次举荐的更多相关文章
- Django中ORM介绍和字段及其参数
ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术. 简单的说,ORM是通过使用描述 ...
- Django中ORM实际应用
1. Django中ORM的使用 1. 手动新建一个数据库 2. 告诉Django连接哪个数据库 settings.py里面配置数据库连接信息: # 数据库相关的配置项 DATABASES = { ' ...
- Django中ORM介绍和字段及字段参数 Object Relational Mapping(ORM)
Django中ORM介绍和字段及字段参数 Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简 ...
- Django 中ORM 的使用
一:Django 中 orm 的使用 1:手动新建一个数据库 2 :告诉Django连接哪个数据库 settings.py里配置数据库连接信息: #数据库相关的配置项 DATABASES ={ 'de ...
- Django中ORM的聚合索引
Django中ORM的聚合索引 在Django中,聚合函数是通过aggregate方法实现的,aggregate方法返回的结果是一个字典 在使用时需要先导入模块from django.db.mod ...
- 关于Django中ORM数据库迁移的配置
Django中ORM数据库迁移配置 1,若想将模型转为mysql数据库中的表,需要在settings中配置: DATABASES = { 'default': { 'ENGINE': 'django. ...
- Django中ORM的使用
Django中ORM的使用 ORM orm(object-relation-mapping)对象关系映射,即用对象来表示关系数据库中的表: 类 --> 表, 对象-->一行数据 对象的属性 ...
- Django中ORM创建表关系
一:django中ORM创建表关系 ORM创建外键关系 1.表与表之间的关系 1.表与表之间的关系 一对多 一对一 多对多 2.操作目标条件: 图书表 出版社表 作者表 作者详情表 3.外键关联 一对 ...
- Django中ORM对数据库的增删改查
Django中ORM对数据库数据的增删改查 模板语言 {% for line in press %} {% line.name %} {% endfor %} {% if 条件 %}{% else % ...
随机推荐
- 《网络攻防》 第十二周作业 SQL注入
SQL注入实践 1.打开seed虚拟机,使用命令sudo service apache2 start启动apache,发现一条提示,意思就是不能可靠地确定域名,如图 即使右下角标着OK,但我还是不放心 ...
- 国外物联网平台(3):IBM Watson IoT
国外物联网平台(3)——IBM Watson IoT 马智 平台定位 提供全面管理的云托管服务,旨在简化并从 IoT 设备中获得价值. Watson IoT Platform 提供对 IoT 设备和数 ...
- ubuntu 删除mysql
UBUNTU 彻底删除 MYSQL 然后重装 MYSQL 删除 mysql sudo apt-get autoremove --purge mysql-server-5.0sudo apt-get r ...
- C#:最简洁强大的代码生成器
这是我们项目中最常用,也是最强大的代码生成器,可以自动生成 存储过程,Model,DAL,BLL 多层的脚本. 第一步:配置config,设置连接的数据库 <?xml version=" ...
- Java从入门到放弃——05.修饰符static,final,权限修饰符
本文目标 static final: 权限修饰符:public,private,protected,缺省 1.static 静态修饰符,被static修饰的变量或者方法会被加载进静态区内存,不需要创建 ...
- 为什么使用docker
为什么要使用Docker? 作为一种新兴的虚拟化方式,Docker跟传统的虚拟化方式相比具有众多的优势. 更高效的利用系统资源 由于容器不需要进行硬件虚拟及运行完整操作系统等额外开销,Docker对系 ...
- C - 又见GCD
有三个正整数a,b,c(0<a,b,c<10^6),其中c不等于b.若a和c的最大公约数为b,现已知a和b,求满足条件的最小的c. Input第一行输入一个n,表示有n组测试数据,接下来 ...
- vm安装centos后unknown host问题和yum install安装不成功问题
网上差了很多说要在vi /etc/sysconfig/network新增GATEWAY=192.168.0.1 还有vi /etc/sysconfig/network-scripts/ifcfg-et ...
- SAP 740GUI客户端快捷方式取消密码登陆
客户端电脑:WIN10 专业版64位. 1. 进入注册表编辑器(regedit) .进入如下路径:HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\SAP\SAPLogo ...
- 线程池之ThreadPoolExecutor详解
为什么要使用线程池 线程是一个操作系统概念.操作系统负责这个线程的创建.挂起.运行.阻塞和终结操作.而操作系统创建线程.切换线程状态.终结线程都要进行CPU调度——这是一个耗费时间和系统资源的事情. ...