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 % ...
随机推荐
- spark 1.5的hivecontext的问题
spark升级到1.5,里面的hive版本升级到1.2.1版本,我写了如下的代码 object SQLApp extends App{ val sparkconf = new SparkConf(). ...
- 《Maven实战》笔记-8-构建部署Web项目
一.Web项目结构 1.显式指定Web项目打包方式为war: 2.默认目录 根据“约定大于配置”的规则,Web项目的类及资源文件默认位置为src/main/java和src/main/reso ...
- 小小c#算法题 - 7 - 堆排序 (Heap Sort)
在讨论堆排序之前,我们先来讨论一下另外一种排序算法——插入排序.插入排序的逻辑相当简单,先遍历一遍数组找到最小值,然后将这个最小值跟第一个元素交换.然后遍历第一个元素之后的n-1个元素,得到这n-1个 ...
- Windows系统编程之进程同步试验
试验过程中调用了不少系统函数,并且涉及到一些系统级的概念,在此记录下来做为解决问题的一种方式.也许在以后的编程的过程中是否可以通过调用系统平台上的东西来完成一些任务,这仍不失为一种好的思维方式. 多线 ...
- windows下部署icescrum
软件151 卢炜杰 一.安装JDK 1.下载JDK 地址:http://www.oracle.com/technetwork/java/javaee/downloads/index.html 选择相 ...
- 循环对XML文档添加Attribute以及移除Element
如下面的图片要求,需要把左边的xml文改为右边的文档. 需要添加Attribute,移除Element,但是所添加的Attribute值已经跟被移除的Element值不相同.实现方法可以参考<对 ...
- javascript dom与字符串相互转换
js dom与字符串相互转换 一.字符串转换dom: function stringToDom(str){ var obj=document.createElement("div" ...
- CentOS6.5上Zabbix3.0的RPM安装【一】-安装并配置Server
一.Environment OS:CentOS6.5 64bit [桌面版安装] Server端:192.168.201.109 ServerName Clinet端:192.168.201.199 ...
- Codeforces Round #541 (Div. 2)D(并查集(dsu),拓扑排序)
#include<bits/stdc++.h>using namespace std;vector<int>g[2007];int fa[2007],vis[2007],num ...
- phonegap移动开发之jsonp协议
最近我一直在学习android开发.并且做了几个小软件,我会在百度网盘和二维码的形式分享出去!源码会分享到github上.下面我还是主要来说说jsonp协议吧.可能许多初学者会遇到许多跟我一样的问题. ...