【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 ...
随机推荐
- JAVA 中文 unicode 相互转换 文件读取
package com.test; import org.junit.Test; public class JunitTest { @Test public void test(){ String p ...
- 1. @ModelAttribute注解
添加@ModelAttribute修饰的方法,在每个目标方法调用前都会执行该方法. 一般情况下,在form表单修改的时,某项字段规定为不可更改,就需要使用该注解标注的方法,根据id的获取与否,来从数据 ...
- LabelFunction 允许在显示数据以前进行处理
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="ht ...
- day02-格式化输出
python格式化字符串有%和{}两种 字符串格式控制符. 字符串输入数据格式类型(%格式操作符号) %%百分号标记%c字符及其ASCII码%s字符串%d有符号整数(十进制)%u无符号整数(十进制)% ...
- maven eclipse操作
目前eclipse默认集成maven插件,但要在eclipse中配置maven的setting才可以. setting可以选用mvn解压包下的目录,也可用仓库下的settings文件. 因我们需要结合 ...
- js 购物车的实现
购物车原理:创建一个构造函数,把涉及到的项目写成方法,然后把这些方法放到构造函数的原型对象上,通过按钮绑定,调用原型对象上的方法,实现对涉及项目的改变 html代码: <!DOCTYPE htm ...
- 尚硅谷springboot学习3-helloworld程序
1.环境准备 –jdk1.8:Spring Boot 推荐jdk1.7及以上:java version "1.8.0_112" –maven3.x:maven 3.3以上版本:Ap ...
- Zabbix笔记
简单检查中的icmppingloss[<target>,<packets>,<interval>,<size>,<timeout>] 结 ...
- decode 函数用法
含义解释: decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下:IF 条件=值1 THEN RETURN(翻译值1)ELSIF 条件=值2 THEN ...
- 360Top奢侈品演示站 - 纯手工纪念品
一个纯手写的过程化编程商城项目,留作纪念. 360Top奢侈品演示站 http://360top.farwish.com