12 ORM简介+ORM创建表
一、ORM简介
我们在使用Django框架开发web应用的过程中,不可避免地会涉及到数据的管理操作(如增、删、改、查),而一旦谈到数据的管理操作,就需要用到数据库管理软件,例如mysql、oracle、Microsoft SQL Server等。
如果应用程序需要操作数据(比如将用户注册信息永久存放起来),那么我们需要在应用程序中编写原生sql语句,然后使用pymysql模块远程操作mysql数据库,详见图1
但是直接编写原生sql语句会存在两方面的问题,严重影响开发效率。
为了解决上述问题,django引入了ORM的概念,ORM全称Object Relational Mapping,即对象关系映射,是在pymysq之上又进行了一层封装,对于数据的操作,我们无需再去编写原生sql,取代代之的是基于面向对象的思想去编写类、对象、调用相应的方法等,ORM会将其转换/映射成原生SQL然后交给pymysql执行。
1.什么是ORM?(Object Relational Mapping)
ORM:对象关系映射
2.为什么要用ORM?
能够让不会写SQL语句的python程序员
使用面向对象的语法即可简单快捷的操作MySQL,极大地提升开发效率
'''但是ORM有时候自动生成的SQL效率可能会很低'''
类 表
对象 一行行记录
对象点属性 记录某个字段对应的值
3. 如何使用ORM?
在django应用文件夹下的models.py中操作
"""orm无法创建库 需要自己提前创建好"""
二、orm创建表
前期准备:
1.新建名为app01的app,在app01的models.py中创建模型
2.django的orm支持多种数据库,如果想将上述模型转为mysql数据库中的表,需要settings.py中设置
3.修改django的orm默认操作数据库的模块为pymysql
import pymysql pymysql.install_as_MySQLdb()
3.测试脚本
去manage.py中拷贝前四行代码 然后自己写两行
import os if __name__ == '__main__': os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'day59.settings') import django django.setup() from app01 import models
4.数据库迁移
python3 manage.py makemigrations # 将改动记到小本本上(migrations) python3 manage.py migrate # 真正操作数据库
强调:只要在models.py中改动了与数据库相关的代码 就必须要重新执行迁移命令
1.先在models.py中书写类相关的代码
2.执行数据库迁移命令
python3 manage.py makemigrations # 将改动记到小本本上(migrations)
python3 manage.py migrate # 真正操作数据库
"""pycharm快捷提示(tools>>>run manage.py task)"""
补充
1.主键字段orm会自动创建 只不过名字固定为id
2.CharField字段类型必须要有max_length参数