【Django】关于ORM的使用
添加模型并映射到数据库中:
1. 在 settings.py 中,配置好 DATABASES ,做好数据库相关的配置。
以mysql为例:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'testinfo',
'USER':'root',
'PASSWORD':'Chanyx0618',
'HOST':'127.0.0.1',
'PORT':'3306',
}
}
2. 在 app 中的 models.py 中定义好模型,这个模型必须继承自 django.db.models 。
例:
class ORM_Book(models.Model):
name=models.CharField(max_length=50,null=False)
author=models.CharField(max_length=20,null=True)
price=models.FloatField(default=0,null=False)
date=models.DateTimeField(default=datetime.now)
3. 将这个 app 添加到 settings.py 的 INSTALLED_APP 中。
NSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'front',
'book',#这个是模型所在的APP
]
4. 在命令行终端,进入到项目所在的路径,然后执行命令 python manage.py makemigrations 来
生成迁移脚本文件。
5. 同样在命令行中,执行命令 python manage.py migrate 来将迁移脚本文件映射到数据库中。
数据操作:
首先要在views中添加视图并且导入模型
from .models import ORM_Book
,然后在urls中添加path
增:
def ORM_book_add(request):
book= ORM_Book(name='数字城堡',price='10',author='丹布朗')
book.save() 删:
def ORM_book_delete(request):
book=ORM_Book.objects.get(pk=5)
book.delete() 注意:删除的时候前面的查找方法用get和filter都可以,而且两个方法都可以用pk=【ID号】来查找
改:
def ORM_book_edit(request):
book=ORM_Book.objects.get(name='达芬奇密码')
book.price=50
book.save() 注意:这里不能使用filter查找,因为保存时会报错:
AttributeError at /edit_orm_book
'QuerySet' object has no attribute 'save'
查:
def ORM_book_search(request):
book = ORM_Book.objects.filter(pk=6)
filter方法返回的对象是:<QuerySet [<ORM_Book: <Book(数字城堡,丹布朗,10.0,2018-08-20 14:58:38.928982+00:00)>>]>
def ORM_book_search(request):
book = ORM_Book.objects.get(pk=6)
get方法返回的对象是:<Book(数字城堡,丹布朗,10.0,2018-08-20 14:58:38.928982+00:00)> 而且:
def ORM_book_search(request):
book = ORM_Book.objects.filter(pk=6)[0] 和
def ORM_book_search(request):
book = ORM_Book.objects.filter(pk=6).first()
都是返回的对象是:<Book(数字城堡,丹布朗,10.0,2018-08-20 14:58:38.928982+00:00)>
【Django】关于ORM的使用的更多相关文章
- python——Django(ORM连表操作)
千呼万唤始出来~~~当当当,终于系统讲了django的ORM操作啦!!!这里记录的是django操作数据库表一对多.多对多的表创建及操作.对于操作,我们只记录连表相关的内容,介绍增加数据和查找数据,因 ...
- Python’s SQLAlchemy vs Other ORMs[转发 3]Django's ORM
Django's ORM Django is a free and open source web application framework whose ORM is built tightly i ...
- 将SALT_STACK的JOB-CACHE放到数据库中,而建库用DJANGO的ORM完成
下面包括了SALT_MASTER的配置,及DJANGO的ORM里更改默认表名称,更改默认字段名称(里面有个RETURN),更改默认ID索引... 一个下午有和它磨来磨去... 感谢鹏龙,感谢高远..: ...
- Django:之ORM、CMS和二维码生成
Django ORM Django 的数据库接口非常好用,我们甚至不需要知道SQL语句如何书写,就可以轻松地查询,创建一些内容,所以有时候想,在其它的地方使用Django的 ORM呢?它有这么丰富的 ...
- Django的ORM实现数据库事务操作
在Django中实现数据库的事务操作 在学习MySQL数据库时,MySQL数据库是支持原子操作的. 什么是数据库的原子操作呢??打个比方,一个消费者在一个商户里刷信用卡消费. 交易正常时,银行在消费者 ...
- 第十九章 Django的ORM映射机制
第十九章 Django的ORM映射机制 第一课 Django获取多个数据以及文件上传 1.获取多选的结果(checkbox,select/option)时: req.POST.getlist('fav ...
- Django之ORM基础
ORM简介 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术. 简单的说,ORM是通过使用描述 ...
- Django中ORM介绍和字段及其参数
ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术. 简单的说,ORM是通过使用描述 ...
- ORM以及Django使用ORM创建表
day61 2018-04-28 1. 内容回顾 1. HTTP协议消息的格式: 1. 请求(request) 请求方法 路径 HTTP/1.1\r\n k1:v1\r\n ...\r\n \r\n ...
- django的ORM
在项目根目录下运行 python manage.py shell 即可进入django的交互shell界面 查询 from my_app.models import MyTestModel datas ...
随机推荐
- <转载> js 闭包
http://www.haorooms.com/post/js_bbtwo http://www.jb51.net/article/24101.htm http://www.cnblogs.com/f ...
- UML图基础知识
一.UML简述 类是面向对象系统中最重要的构造块.类图显示了一组类.接口.协作以及他们之间的关系,通过类图,我们能够很好的掌握类与类之间的关系. 首先给出一幅UML类图,此图来源于<大话设计模式 ...
- jieba安装
执行“pip install jieba”后忽略此条提示" You are using pip version 9.0.3, however version 10.0.1 is availa ...
- yum centos 修改镜像源
参考:https://blog.csdn.net/sj349781478/article/details/78736873 3.清除yum缓存 yum clean all yum makecache ...
- ubuntu建立wifi热点的方法
原文在这里: http://www.linuxidc.com/Linux/2014-07/104624.htm 方法一:network manager 这种方法建立的热点,据说android搜不到. ...
- 07-border(边框)
边框 边框有三个要素: 粗细.线性样式.颜色 border: solid 如果颜色不写,默认是黑色. 如果粗细不写,不显示边框. 如果只写线性样式,默认的有上下左右 3px的宽度,实体样式,并且黑色的 ...
- VirtualBox安装增强工具方法
1.http://blog.csdn.net/wuliowen/article/details/71541561 2.https://segmentfault.com/a/11900000062335 ...
- spring boot 的常用注解
SpringBoot用于简化Spring应用的搭建,开发及部署:该框架采用注解的方式进行配置可以很方便的构建Spring应用. 1. @SpringBootApplication @SpringBoo ...
- js页面停留时间
//在线阅读时间 function onlineRead(minutes){ var o= new Object(); o.courseId=courseId; o.userId=userId; o. ...
- eclipse 使用Maven deploy命令部署构建到Nexus
转载于:http://blog.csdn.net/jun55xiu/article/details/43051627 1 应用场景:SYS-UTIL(系统工具)项目部署.构建成JAR包(SYS-UT ...