django mysql 倒序_Django之操作数据库

1:数据库:

2:MySQL驱动程序的安装

3:Django配置连接数据库

4:在Django中操作数据库

(1)原生SQL语句操作

(2)ORM模型操作

5:ORM模型的介绍

6:创建一个ORM模型并映射模型到数据库中

7:模型常用的属性

(1)常用的Field字段

(2)Field字段常用的参数

(3)模型中Meta的配置

8:外键

9:表关系

(1)一对一

(2)一对多(多对一)

(3)多对多

10:模型的操作

(1)数据的增删改查

(2)聚合函数

(3)aggregate和annotate的区别

(4)F表达式和Q表达式

11:查询集(QuerySet)

12:ORM模型迁移

-------------------------------------------------------------------------------------------------------------------------------

1数据库:简而言之就是存放数据的一个库,用户可以对数据进行增删改查;是网站重要的一个组成部分,只有提供了数据库,网站才能动态的展示。常用的数据库有MySQL,Oracle等。

2MySQL驱动程序的安装:我们使用Django来操作mysql,实际上底层使用的还是python;因此如果我们想要操作数据库首先要安装一个驱动;python3中有多个驱动可供选择如下;

(1)MySql-python :也就是MySQLdb 。是对C语言操作mysql的一个简单封装;只支持python2,不支持python3,运行速度最快。

(2)mysqlclient:是MySql-python的另一个分支,支持python3。

(3)pymsql:纯python实现的一个驱动,效率不高,可以和python无缝连接。

(4)mysql-connector-python:mysql官方推出的,纯python开发的,效率不高

本文使用的是mysqlclient:   安装方式: pip install mysqlclient

3:Django配置连接数据库:在操作数据库之前需要Django先连接上数据库,不需要单独创建一个连接对象,只需要在setting中做好相关的配置即可。

DATABASES ={'default': {'ENGINE': 'django.db.backends.mysql', #数据库引擎(mysql还是Oracle)'NAME': "my01", #数据库的名字"USER":"root",    #数据库的用户名"PASSWORD":"qwe123",    #数据库密码"HOST":"localhost", #数据库的主机地址"PORT":"3306" #数据库的端口号}

}

4:在Django中操作数据库:Django操作数据库有两种方式。第一种是原生的SQL语句操作,另一种是ORM模型操作

(1)原生SQL语句操作

缺点:(1)重复利用率不高(2)不易修改(3)安全问题(SQL注入)

(2)ORM模型操作

5:ORM模型的介绍

(1)ORM,全称Object Relational Mapping,中文叫做对象-关系映射。

(2)通过ORM我们可以通过类的方式来操作数据库,通过把类映射成表,把实例映射为行,把属性映射为字段;ORM在执行对象操作的时候最终还是会把对应的操作转换为SQL语句。

6:创建一个ORM模型并映射模型到数据库中

第一步:创建一个User模型类(在数据库中的表现:类--表名(app的名字_类名(小写)),属性--字段,实例-行)

classUser(models.Model):

username= models.CharField(max_length=10)

telephone= models.CharField(max_length=11)

email=models.EmailField()

sex= models.BooleanField()

第二步:执行makemigrations [app_name]       #后面可以跟APP的名字,生成迁移脚本文件

第三步:执行migrate [app_name]     #映射到数据库中

a4f7aeb6bbe7eeffdd569e99d11e2140.png

7:模型常用的属性

(1)常用的Field字段

AutoField:int类型,自动增长

BigAutoField:类似于AutoField,范围1-9223372036854775807

BooleanField:tinyint类型,True/False

CharField:  varchar类型,使用时必须指定最大长度,即max_length参数必须传递

DateField: 日期类型;两个参数auto_now:每次保存的时候都是用当前的时间,比如记录一个记录修改的日期;auto_

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值