个人简历制作,广州网站营销优化开发,永久免费vps服务器,试述企业网的定义和意义背景 Django框架功能齐全自带数据库操作功能#xff0c;由于工作中设计巨量的api接口#xff0c;需要一个很好的web后端服务框架#xff0c;Django给了莫大的帮助。本文主要介绍Django的ORM框架我们一般对数据库的使用的认识是#xff1a; 创建数据库#xff0c;设计表结构… 背景 Django框架功能齐全自带数据库操作功能由于工作中设计巨量的api接口需要一个很好的web后端服务框架Django给了莫大的帮助。本文主要介绍Django的ORM框架我们一般对数据库的使用的认识是 创建数据库设计表结构和字段使用 MySQLdb 来连接数据库并编写数据访问层代码业务逻辑层去调用数据访问层执行数据库操作ORM是什么 ORMObject Relational Mapping(关系对象映射)在django中根据代码中的类自动生成数据库的表也叫--code first。 类名对应------》数据库中的表名类属性对应---------》数据库里的字段类实例对应---------》数据库表里的一行数据obj.id obj.name.....类实例对象的属性Django ORM的优势 Django的orm操作本质上会根据对接的数据库引擎翻译成对应的sql语句所有使用Django开发的项目无需关心程序底层使用的是MySQL、Oracle、sqlite....如果数据库迁移只需要更换Django的数据库引擎即可。 总的来说Django的ORM 在设计初已经考虑了大量web设计中数据库操作的共有需求配置好数据库后就可以像使用变量模型一样操作数据库中数据。 一、数据库配置MySQL 1、创建数据库 注意设置 数据的字符编码由于Django自带的orm是data_first类型的ORM使用前必须先创建数据库2、修改project中的settings.py文件中设置 连接 MySQL数据库Django默认使用的是sqllite数据库 DATABASES {default: {ENGINE: django.db.backends.mysql,NAME:you mysql db name ,USER: user name,PASSWORD: password,HOST: your mydql db host,PORT: your mysql db port,}
} 扩展查看orm操作执行的原生SQL语句,在project中的settings.py文件增加。
LOGGING {version: 1,disable_existing_loggers: False,handlers: {console:{level:DEBUG,class:logging.StreamHandler,},},loggers: {django.db.backends: {handlers: [console],propagate: True,level:DEBUG,},}
} 3、由于Django2.X后只支持python3而目前MySQLdb对python3没有支持所以需要使用pymysql在django项目中修改project 中的__init__py 文件设置 Django默认连接MySQL的方式 import pymysql
pymysql.install_as_MySQLdb() 4、setings文件注册APP INSTALLED_APPS [django.contrib.admin,django.contrib.auth,django.contrib.contenttypes,django.contrib.sessions,django.contrib.messages,django.contrib.staticfiles,app01.apps.App01Config,] 注册APP后Django会根据APP的名称等生成并使用表/库。Django中数据库必须有非空主键而且如果没有声明所有的字段都会默认设计成非空。 按照规则在models.py模块中设计表。数据迁移操作。python manage.py makemigrations #根据app下的migrations目录中的记录检测当前model层代码是否发生变化
python manage.py migrate #把orm代码转换成sql语句去数据库执行
python manage.py migrate --fake #只记录变化不提交数据库操作 注由于所有字段都默认是非空所以在增加字段时会报错解决办法是增加:nullTure,声明。