python数据库操作orm_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类中进行重写

# 此时在终端运行的窗口就打印出:

# 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 "".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')

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

用pip下载pymysql并引用 具体请参考文章:

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

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

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工 ...

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

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

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

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

iOS 数据库sqlite完整增删改查操作

1: 创建数据库表格 1.1 — 表格创建使用一个数据库软件快速创建:软件大小14.3M; 下载地址:http://pan.baidu.com/s/1qWOgGoc; 表格创建-> 打开软件,点 ...

随机推荐

Linux 系统查看物理内存使用率的命令脚本,以百分比形式输出。

想监视系统内存?好像是没法直接得到现成的百分比的,自己取值计算一下吧 totalmem=`free -m | grep 'Mem' | awk '{print $3}'` usedmem=`free ...

关于Oracle表空间数据文件自增长的一些默认选项

昨天,一个同事请教了一些关于Oracle表空间数据文件自增长的问题,解答过程中顺便整理起来,以后其他同事有同样的疑问时可以直接查阅. 实验内容: 创建MYTEST表空间,默认不开启自增长. 给MYTE ...

acdream 1044

题意:有你一个草坪,草的初始高度都是100,让你用割草机割,割草机只能横着或竖着割,每次割的高度一定,问你能不能割出给定的草坪出来. 考虑任意一个草被割要么是横着要么竖着,所以任意一个草必然是它所在行 ...

Linq中Union与Contact方法用法对比

文章一开始,我们来看看下面这个简单的实例. 代码片段1: int[] ints1 = { 2, 4, 9, 3, 0, 5, 1, 7 }; int[] ints2 = { 1, 3, 6, 4, 4 ...

oracle数据库删除数据Delete语句和Truncate语句的对比

oracle数据库删除数据Delete语句和Truncate语句的对比 当表中的数据不需要时,则应该删除该数据并释放所占用的空间,删除表中的数据可以使用Delete语句或者Truncate语句,下面分 ...

2015 北京网络赛 C Protecting Homeless Cats hihoCoder 1229 树状数组

题意:求在平面上 任意两点连线,原点到这个点的距离小于d的点对有多少个,n=200000; 解: 以原点为圆心做一个半径为d的圆,我们知道圆内的点和园内以外的点的连线都是小于d的还有,圆内和园内的点联 ...

div界面浮动插件

JS浮动广告

沉迷AC自动机无法自拔之:[UVA 11468] Substring

图片加载可能有点慢,请跳过题面先看题解,谢谢 这个鬼题目,上一波套路好了 先用题目给的模板串建\(AC\)自动机,把单词结尾标记为 \(val=1\),然后在建好的\(AC\)自动机上跑 \(dp\) ...

Android -- 触摸Area对焦区域(更新)

老早就想找关于不同点击不同地方的对焦,但是一直没有找到,现在项目又需要这个功能,又跑出来找找,最后还是找到啦~~关于对焦更多的是关于自动对焦. 废话不多说,直接来干货,主要是setFocusAreas ...

电脑护眼小软件f.lux

f.lux这软件用了能不能保护好视力不好说,反正我是用了以后这么多年一直都在用,狠不下心删去.至少安装后能让心里多一些安全感! 以前老控制不住长期坐在电脑前不动,太需要有这类软件来养护.用了没太明显的 ...

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值