前言
django 中连接数据,可以使用pymysql 也可以使用django 自带的框架ORM
pymysql 操作数据库
用pymysql连接MySQL数据库查询数据
1. import pymysql
2. 建立连接
3. 获取光标
4. 执行SQL语句
5. 获取数据
6. 关闭光标
7. 关闭连接
ORM是个啥
对象关系映射
类 数据表
属性 字段
对象 数据行
两者的比较
使用pymysql连接数据库缺点:
1. 麻烦
2. 自己写SQL语句!!!
使用ORM工具连接数据库
- 优点:
1. 不用自己写SQL语句!!!
- 缺点:
1. 执行效率不高(需要翻译成语句再去执行)
Django中如何使用ORM
1. 告诉Django连接哪个MySQL数据库(settings.py)
settings.py 中数据库连接配置 #默认的配置,默认使用的是django 自带的数据库sqlite3 # DATABASES = { # \'default\': { # \'ENGINE\': \'django.db.backends.sqlite3\', # \'NAME\': os.path.join(BASE_DIR, \'db.sqlite3\'), # } # } DATABASES = { \'default\': { \'ENGINE\': \'django.db.backends.mysql\', #引擎 \'NAME\': \'cmdb\', #数据库名称 \'HOST\':\'127.0.0.1\', #主机地址 \'PORT\':3306, #端口 \'USER\':\'root\', #用户名 \'PASSWORD\':\'111111\', #密码 } }
2. 告诉Django用pymysql连接MySQL数据库 (默认用的是MySQLDB)
在项目的__init__.py 中加入如下配置
import pymysql pymysql.install_as_MySQLdb()
3. 去app/models.py里面创建类
from django.db import models class IDC(models.Model): """ 机房信息 """ name = models.CharField(\'机房\', max_length=32) floor = models.IntegerField(\'楼层\', default=1) class Meta: verbose_name_plural = "机房表" def __str__(self): return self.name
4. 让Django去数据库帮我创建类对应的数据表
1. python manage.py makemigrations --> 将models.py的改动记录在小本本上
2. python manage.py migrate --> 将变更记录翻译成SQL语句,去数据库执行
5、在django 中查看数据库表数据
添加数据源(mysql 作为数据源)
配置数据库连接信息
注意:第一次配置需要下载驱动,在此页面的下面有提示,下载可以。
添加sqlite3 作为数据源
注意:sqlite3 为文件数据库,数据库实体本身就在django项目目录内,直接右键作为数据源打开即可。