首先需要配置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. ASP.NET Core 借助 Helm 部署应用至K8S

    前言 玩K8S也有一段时间了,借助云服务提供商的K8S控制台,已经可以很方便的快速部署应用至K8S.通过简单的点击,可以一次性帮忙创建K8S 对象:Deployment.Service.Ingress ...

  2. centos docker redis 安装

    1.下载redis镜像 docker pull redis 2.下载redis.conf文件 https://redis.io/topics/config 这边查找自己服务器redis对应的版本文件 ...

  3. 「Spark」Spark SQL Thrift Server运行方式

    Spark SQL可以使用JDBC/ODBC或命令行接口充当分布式查询引擎.这种模式,用户或者应用程序可以直接与Spark SQL交互,以运行SQL查询,无需编写任何代码. Spark SQL提供两种 ...

  4. 推荐一款疫情期间适合在家办公的远程工具,仅需IP和密码轻松实现远程管理

    这段时间,受疫情影响,很多企业都开启了居家办公模式.但疫情突发,大多数人的办公资料没有拷贝打包,对于居家办公的人,尤其是运维人员来说,很难完成顺利完成工作. 像向日葵.teamviewer之类的远程软 ...

  5. Lucene之索引库的维护:添加,删除,修改

    索引添加 Field域属性分类 添加文档的时候,我们文档当中包含多个域,那么域的类型是我们自定义的,上个案例使用的TextField域,那么这个域他会自动分词,然后存储 我们要根据数据类型和数据的用途 ...

  6. sql的一般查询语句(增删改查中的查)

    /*例子 判断规则 http://xxx.xxx/new.php?id=57 and 1=1 正确 http://xxx.xxx/new.php?id=57 and 1=2 错误 http://xxx ...

  7. Markdown语法,及其在typora中的快捷键,学写博客吧!!!

    前言 Markdown (MD) 是现在最流行的一种文档书写语言格式.平常写笔记,写博客,写计划再好不过了.个人觉得使用很简单,右击鼠标,有你想要的操作. Typora是简洁.操作简单.功能强大.方便 ...

  8. instanceof读解

    function instance(l,r){ let 0 = r.prototype; let v = l.__proto__; while(true){ if(v === null){ retur ...

  9. cobaltstrike使用笔记2

    0x01 cs服务端绕过流量检测 定义C2的通信格式,修改CS默认的流量特征 编写Profiles: 开源Profiles:https://github.com/rsmudge/Malleable-C ...

  10. 建立基于docker的编译环境

    如果我们要在一台开发主机上搭一个编译环境,我们需要安装一堆依赖库和编译工具.如果我们有多个不同的项目同时进行,这些项目的编译工具和依赖库又都不一样,如果我们把这些东西全都塞到一台机器里,会不会有冲突呢 ...