一. 程序连接mysql
1. 导入pymysql模块
2. 创建连接
3. 获取执行命令的游标
4. 使用游标去执行sql语句
5. 获取sql语句的执行结果
6. 关闭游标
7. 关闭连接
二. ORM介绍
1. 概念
①. 对象关系映射(Object Relational Mapping)模式是一种为了解决面向对象与关系数据库存在的互相不匹配的现象技术.
②. 简单说,ORM在业务逻辑层和数据库之间充当了桥梁的作用
③. ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。
2. 优势
①. ORM解决的主要问题是对象和关系的映射,通常把一个类和一个表一一对应,类的每个实例对应表中的一条记录,类的每一个属性对应表中的每个字段.
②. ORM提供了对数据库的映射,不用直接编写sql代码,只需像操作对象一样从数据库操作数据.
③. 提高开发效率.
3. 劣势
①. 会在一定程度上牺牲程序的执行效率
三. django项目使用mysql数据库
※ : 流程 :
在cmd中创建一个数据库,之后在pycharm中使用pymysql模块来对数据库操作,在pycharm中创建一个类,类名就是在cmd创建的数据库名,此类必须继承models.Model类,这个类中的每一个属性就相当于数据库中的每一个字段,每一个对象就相当于数据库中的每一行数据.
1. 在cmd中手动创建一个数据库
create database 数据库名;
2. 在django项目中的settings.py文件中,配置数据库连接信息 :
DATABASES = { "default": { "ENGINE": "django.db.backends.mysql", "NAME": "你的数据库名称", # 需要自己手动创建数据库 "USER": "数据库用户名", "PASSWORD": "数据库密码", "HOST": "数据库IP", "POST": 3306 } }
3. 在django项目中和settings.py同级的__init__.py文件中写如下代码,告诉django使用pymysql模块连接mysql数据库 :
import pymysql
pymysql.install_as_MySQLdb()
4. 在app/models.py文件中创建类(必须继承models.Model类)
5. 建好类之后并不代表就创建出来,需要命令通知django app/models.py文件里面的变更,并需要另外的命令将变更记录去翻译成sql语句去数据库执行.
①. python manage.py makemigrations 记录变更
②. python manage.py migrate 翻译记录
这个时候去cmd查看数据库中的表
四. django ORM常用字段和参数
1. 字段
①. AutoField
int自增列,必须填入参数primary_key=True. 当model中没有自增列时,会自动创建一个列名为id的列.
②. IntegerField
一个整数类型,范围在 -2147483648 to 2147483647。
③. CharField
字符类型,必须提供max_length参数, max_length表示字符长度。
④. DateField
日期字段,日期格式 YYYY-MM-DD,相当于Python中的datetime.date()实例。
⑤. DateTimeField
日期时间字段,格式 YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ],相当于Python中的datetime.datetime()实例。