首先需要配置settings.py文件中的DATABASES与数据库的连接信息,
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'orm_intro_dem',
'USER': 'root',
'PASSWORD': 'root',
'HOST': '127.0.0.1',
'PORT': '3306',
}
}
之后将创建的app添加到settings.py文件中的INSTALLED_APPS中,在app的models.py文件中创建app自己的模型,并且进行与数据库之间的映射。
models.py文件中的内容:
from django.db import models
from datetime import datetime # 如果要想一个python中定义的类,能够成为一个可以映射到数据库中模型,
# 就要让这个类继承models.Model
class Book(models.Model):
name = models.CharField(max_length=100, null=False)
author = models.CharField(max_length=100, null=False)
datetime = models.DateTimeField(null=False, default=datetime.now())
price = models.FloatField(null=False, default=0) # 之后在终端命令行模式,进入项目所在的目录中,执行命令:python manage.py makemigrations和python manage.py migrate;
# 在我们的mysql数据库中就可以看到模型映射生成的表。
在app的views.py文件中定义视图函数,调用刚才定义的ORM模型,进行数据库的增删改查操作。

1.添加数据,示例代码如下:

from django.shortcuts import render
# 要想使用定义的ORM模型,首先要先进行导入
from .models import Book def index(request):
# 1.添加图书信息,因为ORM模型是通过对象来操作对象的属性,进而可以达到操作数据中的字段的效果。
book = Book(name='西游记', author='吴承恩', price='160')
# # 调用save()函数,将数据保存到数据库中的表中
book.save()
return render(request, 'index.html')

2.查询数据,示例代码如下:

from django.shortcuts import render
# 要想使用定义的ORM模型,首先要先进行导入
from .models import Book def index(request):
# 2.查询操作
# 2.1 通过主键进行查找
# 如果没有自定义查找操作的方法,django默认是使用objects()方法进行查找
# 此处的pk代表的是primary key,
book = Book.objects.get(pk=2)
# # 打印进行查看,输出结果为:Book object (2)
print(book)
# 如果要想显示出具体的内容,就可以通过重写类的str方法(python内置的)在models.pyw文件中的Book类中进行重写
# 此时在终端运行的窗口就打印出:<Book:(三国演义, 罗贯中, 180.0, 2020-01-19 14:24:28.900975+00:00)>
# 2.2 通过条件进行查询
# 如果查询出来的结果有多条数据满足,还可以嗲用first()函数,只返回第一条数据
books = Book.objects.filter(name='三国演义').first()
print(books)
# 使用filter()方法进行查找,返回的是一个“QuerySet”对象,这个对象类似于列表,
# 我们可以使用这个对象的“first”方法来获取第一个满足的值。
return render(request, 'index.html')
models.py文件中重写对象的__str__()方法,示例代码如下:
from django.db import models
from datetime import datetime # 如果要想一个python中定义的类,能够成为一个可以映射到数据库中模型,
# 就要让这个类继承models.Model
class Book(models.Model):
name = models.CharField(max_length=100, null=False)
author = models.CharField(max_length=100, null=False)
datetime = models.DateTimeField(null=False, default=datetime.now())
price = models.FloatField(null=False, default=0) def __str__(self):
return "<Book:({name}, {author}, {price}, {datetime})>".format(name=self.name, author=self.author, price=self.price, datetime=self.datetime)
3.删除图书数据信息,示例代码如下:
from django.shortcuts import render
# 要想使用定义的ORM模型,首先要先进行导入
from .models import Book def index(request):
# 3.删除图书,通过主键获取数据信息,之后对象调用delete()方法进行删除
book = Book.objects.get(pk=3)
book.delete()
return render(request, 'index.html')
4.修改数据,示例代码如下:
from django.shortcuts import render
# 要想使用定义的ORM模型,首先要先进行导入
from .models import Book def index(request):
# 4.修改数据
book = Book.objects.get(pk=2)
# 将对象的属性直接赋予新的值,并进行保存,就可以进行修改数据信息了
book.price = 100
book.save()
return render(request, 'index.html')

48.Python中ORM模型实现mysql数据库基本的增删改查操作的更多相关文章

  1. 【Python + Mysql】之用pymysql库连接Mysql数据库并进行增删改查操作

    用pip下载pymysql并引用 具体请参考文章: <Python之MySQL数据库增删改查操作> <python3.6 使用 pymysql 连接 Mysql 数据库及 简单的增删 ...

  2. java连接mysql数据库 三 实现增删改查操作

    同以前一样,先写一个数据库打开和关闭操作类 public class DBConnection { String driver = "com.mysql.jdbc.Driver"; ...

  3. Python进阶----数据库的基础,关系型数据库与非关系型数据库(No SQL:not only sql),mysql数据库语言基础(增删改查,权限设定)

    day37 一丶Python进阶----数据库的基础,mysql数据库语言基础(增删改查,权限设定) 什么是数据库:    简称:DataBase ---->DB    数据库即存放数据的仓库, ...

  4. Vc数据库编程基础MySql数据库的表增删改查数据

    Vc数据库编程基础MySql数据库的表增删改查数据 一丶表操作命令 1.查看表中所有数据 select * from 表名 2.为表中所有的字段添加数据 insert into 表名( 字段1,字段2 ...

  5. 在C#的控制台应用中使用Dapper链接MySQL并执行一些增删改查

    一.首先先创建一个C#的控制台应用 二.然后添加上必要的命名空间 using System;using System.Collections.Generic;using MySql.Data.MySq ...

  6. mysql数据库单表增删改查命令

    数据库DB-database-mysql 课程安排 第一天: 1.数据库定义以及设计 2.mysql服务端的安装 3.mysql-dos操作 库的操作 表的操作 4.mysql客户端navicate工 ...

  7. MySQL基本概念及增删改查操作

    SQL.DB.DBMS关系 DB: DataBase(数据库,数据库实际上在硬盘上以文件的形式存在) DBMS: DataBase Management System(数据库管理系统,常见的有:MyS ...

  8. 利用SQLiteOpenHelper创建数据库,进行增删改查操作

    Android中提供SQLiteOpenHelper类,在该类的构造器中,调用Context中的方法创建并打开一个指定名称的数据库对象.继承和扩展SQLiteOpenHelper类主要做的工作就是重写 ...

  9. MySQL数据库(安装+增删改查)

    一. 安装 下载地址 : https://dev.mysql.com/downloads/mysql/ 1. 安装步骤 (1) 选择5.7版本 (2) 针对操作系统的不同下载不同的版本 (3) 解压 ...

随机推荐

  1. Kubernetes最新版核心命令

    #查看所有namespace的pods运行情况 kubectl get pods --all-namespaces #查看具体pods,记得后边跟namespace名字哦 kubectl get po ...

  2. python爬虫实战:基础爬虫(使用BeautifulSoup4等)

    以前学习写爬虫程序时候,我没有系统地学习爬虫最基本的模块框架,只是实现自己的目标而写出来的,最近学习基础的爬虫,但含有完整的结构,大型爬虫含有的基础模块,此项目也有,“麻雀虽小,五脏俱全”,只是没有考 ...

  3. nginx 正向代理与反向代理

    一.介绍 反向代理:让Internet上的用户可以访问局域网内的资源,中间设置一个代理服务器,如下所示,红色圈是指局域网内的站点(myweb站点是我们的站点,例如iis).箭头不能反过来 正向代理:客 ...

  4. SAP MM 采购订单与相关合同的价格差异问题分析

    SAP MM 采购订单与相关合同的价格差异问题分析 笔者所在的项目里,一般生产性物料PO的价格是来自于合同价格的,而合同的价格来自于采购信息记录的价格,业务部门不允许PO里随便改价格的. 但是业务部门 ...

  5. Git操作:查看所有分支的提交修改

    我们在廖雪峰Git教程或者一些书籍学习git分支时,大都会学习到这样一个命令git log --graph或者就是单纯的git log,他可以用来查看当前分支.但是这个弊端就是:它只能查看与当前分支有 ...

  6. JavaScript对象模型概念

    1.对象的概念 JavaScript只有函数对象才有类的概念,因此创建一个对象,必须使用函数对象.(ES6中可以直接声明一个class,实质上也是一个函数对象). 函数对象的内部有[[Construc ...

  7. 程序员为什么害怕低代码?ZT

    转自:https://www.jianshu.com/p/cd89fe94cd30 低代码 是一种近些年兴起的企业软件快速开发技术和工具.借助低代码使用者无需编码即可完成企业应用的常用功能,少量编码扩 ...

  8. 用ArcGIS Runtime for Android建立简单App,展示地图

    1.新建AS项目 此处引用官网上新建项目的过程,很简单,不做翻译了. 2.配置ArcGIS Runtime for Android100.5.0环境 2-1.项目切换成Project 2-2 .选择P ...

  9. Android_向用户发送短信

    一段代码,用的时候copy就行 记得在manifest里声明send-sms和read-sms权限 public class SendMsgActivity extends AppCompatActi ...

  10. jQuery---jquery.color.js和jquery.lazyload.js的使用

    jquery.color.js的使用 了解即可 <!--1. 引入jquery的js文件--> <script src="jquery-1.12.4.js"> ...