Django中ORM对数据库的增删改查操作

什么是ORM?  ORM(对象关系映射)指用面向对象的方法处理数据库中的创建表以及数据的增删改查等操作。

简而言之,就是将数据库的一张表当作一个类,数据库中的每一条记录当作一个对象。在Django中定义一个类,就是在数据库中创建一张表格。在Django中实例化一个类的对象,就是在数据库中增加了一条记录。在Django中删除一个对象,就是在数据库中删除了一条记录。在DJango中更改一个对象的属性,就是在数据库中修改一条记录的值。在django中遍历查询对象的属性值,就是在数据库中查询记录的值。

下面是几条django的views视图函数中的命令语句。

一,增(create,save)

from app01.models import *

#create方式一:   Author.objects.create(name=‘Alvin‘)

#create方式二:   Author.objects.create(**{"name":"alex"})

#save方式一:     author=Author(name="alvin")
                    author.save()

#save方式二:     author=Author()
                    author.name="alvin"
                    author.save()

注意,增加时create+save两个组合,create是增的动作,save是加的动作,缺一个都不中。

二,删(delete)

>>> Book.objects.filter(id=1).delete()
(3, {‘app01.Book_authors‘: 2, ‘app01.Book‘: 1})
如果是多对多的关系: remove()和clear()方法: 

#正向book = models.Book.objects.filter(id=1)

#删除第三张表中和女孩1关联的所有关联信息book.author.clear()        #清空与book中id=1 关联的所有数据book.author.remove(2)  #可以为idbook.author.remove(*[1,2,3,4])     #可以为列表,前面加*

#反向author = models.Author.objects.filter(id=1)author.book_set.clear() #清空与boy中id=1 关联的所有数据

三,改(update和save)#---------------- update方法直接设定对应属性----------------    models.Book.objects.filter(id=3).update(title="PHP")    ##sql:    ##UPDATE "app01_book" SET "title" = ‘PHP‘ WHERE "app01_book"."id" = 3; args=(‘PHP‘, 3)

#--------------- save方法会将所有属性重新设定一遍,效率低-----------    obj=models.Book.objects.filter(id=3)[0]    obj.title="Python"    obj.save()# SELECT "app01_book"."id", "app01_book"."title", "app01_book"."price", # "app01_book"."color", "app01_book"."page_num", # "app01_book"."publisher_id" FROM "app01_book" WHERE "app01_book"."id" = 3 LIMIT 1; # # UPDATE "app01_book" SET "title" = ‘Python‘, "price" = 3333, "color" = ‘red‘, "page_num" = 556,# "publisher_id" = 1 WHERE "app01_book"."id" = 3;
 

原文地址:https://www.cnblogs.com/chaojiyingxiong/p/9490582.html

时间: 2024-08-08 09:32:43

Django中ORM对数据库的增删改查操作的相关文章

【Mysql】Java中对Mysql数据库的增删改查、Java的System类

这部分也是所谓JDBC.网站数据源的内容,把名字弄得很高深似得,实际上只是Java中对Mysql数据库的增删改查的内容.非常简单,之前写了这么多Mysql的内容,没好好总结一下,实在是不应该.今天就实现一个Java中对Mysql数据库的增删改查,随便带点Java取出当前系统的系统名与系统时间的知识,完成一个还算有点意思的小例子. 一.基本目标 首先,在Mysql数据库中有一张名为testtable的空表,id为自增列,username,class都是文本列,但是class里面都存放数字,也就是整

使用MyEclipse对MongoDB数据库 进行增删改查操作

前面写了一篇MongoDB的下载与安装,接下来此篇写的是MongoDB数据库在JAVA程序中的基本功能: 使用MyEclipse对MongoDB数据库进行增删改查操作 1.导入JAR包 使用了Spring3.0:此类包,可以上网查询"MongoDB相关JAR包" 2.创建一个Person实体类 源代码如下: public class Person(){ //属性 Private String id; //id Private String name; //name Private in

基于Java的XML文件模拟数据库进行增删改查操作

我们知道XML文件既可以用来进行数据的传输,也可以配合DTD约束文件用来作为配置文件,当然其本质就是一个加了标签以及众多空格保持格式的字符串,那么就可以用Java进行操作. 本例是使用MyEclipse带入DOM4j解析时要用的jar包的基础上做的:当然DOM4j相对于DOM SAX 等解析方式的方便程度是不言而喻的. 下面是本次用例XML文件 <?xml version="1.0" encoding="UTF-8"?> <persons> 

nodejs对mongodb数据库的增删改查操作(转载)

首先要确保mongodb的正确安装,安装参照:http://docs.mongodb.org/manual/tutorial/install-mongodb-on-debian-or-ubuntu-linux 另外可以参考我的另一篇博文 http://www.cnblogs.com/sexintercourse/p/5774310.html 指导mongo和nodejs的开发 然后下载nodejs的mongodb的driver npm install mongodb 编写一个测试的程序: 1 v

Django数据库基本增删改查操作

urls.py文件里的内容---实现url路由 from django.contrib import admin from django.urls import path,include from app01 import views urlpatterns = [ path('credata/', views.credata), ] views.py文件里方法定义 from django.shortcuts import HttpResponse import pymysql pymysql.

Java连接本地MySQL数据库进行增删改查操作

package Dao; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import entity.UserInfo; public class JDBC { Connection conn

sqlite-SQL-对表中的数据记录进行增删改查操作

1 添加数据记录 insert into table_name(field1, field2, ...) values(val1, val2, ...); valx为需要存入字段的值. 例,往学生信息表添加数据: Insert into student_info(stu_no, name) values(0001, alex); 注意: INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (1, 'Paul', 32, 'Califor

MyBatis对数据库的增删改查操作,简单示例

之前一直实用Hibernate进行开发,最近公司在使用Mybatis,根据网上的示例,做了一个简单的Demo,以便日后复习 总体结构如下图 首先是创建一个工程,然后导入两个jar包,然后编写mybatis的jdbc配置文件Configuration.xml Configuration.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-/

对数据库进行增删改查操作

本篇文章接上一篇 使用的连接是上一章的JDBC驱动链接的SQLServer驱动 package addressUtil; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import javax.swing.text.DefaultEditorKit.I