48.Python中ORM模型实现mysql数据库基本的增删改查操作
首先需要配置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数据库基本的增删改查操作的更多相关文章
- 【Python + Mysql】之用pymysql库连接Mysql数据库并进行增删改查操作
用pip下载pymysql并引用 具体请参考文章: <Python之MySQL数据库增删改查操作> <python3.6 使用 pymysql 连接 Mysql 数据库及 简单的增删 ...
- java连接mysql数据库 三 实现增删改查操作
同以前一样,先写一个数据库打开和关闭操作类 public class DBConnection { String driver = "com.mysql.jdbc.Driver"; ...
- Python进阶----数据库的基础,关系型数据库与非关系型数据库(No SQL:not only sql),mysql数据库语言基础(增删改查,权限设定)
day37 一丶Python进阶----数据库的基础,mysql数据库语言基础(增删改查,权限设定) 什么是数据库: 简称:DataBase ---->DB 数据库即存放数据的仓库, ...
- Vc数据库编程基础MySql数据库的表增删改查数据
Vc数据库编程基础MySql数据库的表增删改查数据 一丶表操作命令 1.查看表中所有数据 select * from 表名 2.为表中所有的字段添加数据 insert into 表名( 字段1,字段2 ...
- 在C#的控制台应用中使用Dapper链接MySQL并执行一些增删改查
一.首先先创建一个C#的控制台应用 二.然后添加上必要的命名空间 using System;using System.Collections.Generic;using MySql.Data.MySq ...
- mysql数据库单表增删改查命令
数据库DB-database-mysql 课程安排 第一天: 1.数据库定义以及设计 2.mysql服务端的安装 3.mysql-dos操作 库的操作 表的操作 4.mysql客户端navicate工 ...
- MySQL基本概念及增删改查操作
SQL.DB.DBMS关系 DB: DataBase(数据库,数据库实际上在硬盘上以文件的形式存在) DBMS: DataBase Management System(数据库管理系统,常见的有:MyS ...
- 利用SQLiteOpenHelper创建数据库,进行增删改查操作
Android中提供SQLiteOpenHelper类,在该类的构造器中,调用Context中的方法创建并打开一个指定名称的数据库对象.继承和扩展SQLiteOpenHelper类主要做的工作就是重写 ...
- MySQL数据库(安装+增删改查)
一. 安装 下载地址 : https://dev.mysql.com/downloads/mysql/ 1. 安装步骤 (1) 选择5.7版本 (2) 针对操作系统的不同下载不同的版本 (3) 解压 ...
随机推荐
- rsync命令 SCP命令
快速查询scp: scp 各种参数 源地址文件 目的地址文件 从本地复制到远程: scp [[user@]host1:]file1 ... [[user@]h ...
- [Redis-CentOS7]Python操作Redis(十一)
Python 操作redis #!/usr/bin/env pyhton # coding:utf-8 # @Time : 2020-02-16 21:36 # @Author : LeoShi # ...
- vertical-align和line-height的理解及实例
line-height 字符实际大小和font-size的关系: 下图中不同字体font-size都是100px 测量了一下每个 span 的高度:Helvetica 115px,Gruppo 97p ...
- js将已有数组重新分组(将数组每10项分成一组)
项目中碰到的一个小需求:分页请求数据,一次请求60条,需要将后台返回的数组每10条分成一组渲染一个表格(表格使用的是ant-design-vue的table) 实现逻辑: var chunk = 10 ...
- python基础入门之四 —— 列表
1.格式 [数据1,数据2,数据3,...] 列表可以一次性存多个数据,可以为不同的数据类型 2.下标 从0开始循序向下分配 3.常用函数 查找 index():返回指定数据所在位置下标,不存在就报错 ...
- springboot无法访问静态资源
无法访问static下的静态资源 1.在application.yml中添加 resources: static-locations: classpath:/META-INF/resources/,c ...
- 链接github
引用https://www.cnblogs.com/u-1596086/p/11588957.html 第一步:登录git创建项目 右上角头像按钮,点击your repositories 接着绿色按钮 ...
- ThreadPoolExecutor之RejectedExecutionHandler
最近工作种常用到ThreadPoolExecutor这个对象, 这是一个并发编程中非常常用的对象.因为和并发编程相关所以它存在于java.util.concurrent这包中. 创建这个对象的基本方法 ...
- .Net Core通过json文件 配置管理后台导航菜单
先来看个最终效果图 以前我们配置后台菜单 一般都是把菜单链接, 图标, 以及层级关系 配置到数据库,Core很容易通过json文件来配置导航菜单 而不用存数据库了 先添加个menuconfig.js ...
- 逆战:微信小程序开发(二)
一.常用组件 在上一个章节中讲解了封装请求数据的模块,在此处请求轮播图的数据 1.首页轮播图数据的请求以及渲染 1.1 轮播图数据的请求 pages/home/home.js import { req ...