一、django的ORM系统的分析
- 流程图
- ORM概念:对象关系映射(Object Relational Mapping,简称ORM)
- ORM的优势:不用直接编写SQL代码,只需像操作对象一样从数据库操作数据
二、django模型映射关系
- 模型类必须都写在app下的models.py文件中
- 模型如果需要映射到数据库,所在的app必须被安装
三、连接数据库配置
- 在项目目录下的settings.py中配置如下:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 数据库引擎
'NAME': 'crm', # 数据库名称,需事先创建好
'HOST': 'localhost', # IP地址
'PORT': 3306, # 端口号
'USER': 'admin', # 数据库用户名
'PASSWORD': '*****', # 数据库密码
}
}
# 改成中文编码
LANGUAGE_CODE = 'zh-hans'
# 时间戳改为亚洲上海
TIME_ZONE = 'Asia/Shanghai'
- pymysql数据库连接器的配置
① 在虚拟环境中安装pymysql,通过命令:
② 设置连接器为pymysql,在主目录下的__init__.py中添加如下:pip install pymysql
import pymysql pymysql.install_as_MySQLdb()
五、使用django中的模型创建数据表
- 在student app下面的models.py中创建django类
from django.db import models
class User(models.Model):
# 主键可省略,django会自动给我们加上
name = models.CharField(max_length=20)
age = models.IntegerField()
def __str__(self): # 在查询时会照此格式显示
return '%s-%s' % (self.name, self.age)
- 将模型类映射到数据库中,进入虚拟环境的项目目录下:
① 首先执行以下命令,要创建映射文件、创建迁移
python manage.py makemigrations [app名称]
执行这步命令的时候可能会报错,这时就要检查你的django版本了,如果说你安装的是2.2版本或以上的话,你可以参考这篇文章django2.2如何连接mysql
② 执行以下命令,将映射文件中的映射数据提交到数据库中
python manage.py migrate [app名称]
③ 可到数据库中查看
如下图所示,可看到以app名_模型名小写的数据表已创建好,其他的一些表是django自动生成的
注意:如果要删除表,可以去django模型中注释掉类,然后执行映射的命令,不要手动在命令行里去删除