4 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参数