Django框架之ORM对表结构操作

ORM的优点:(1)简单,不用自己写SQL语句

       (2)开发效率高

ORM的缺点:对于不同的人写的代码,执行效率有差别

ORM的对应关系:

  类  ----------》  数据表

  对象-----------》数据行

  属性-----------》字段

ORM能做的事:

(1)操作数据表 --》创建表/删除表/修改表

(2)操作数据行 --》数据的增删查改

但是ORM不能创建数据库,需要自己动手创建数据库

使用Django中的ORM详细步骤:

1.手动创建数据库

2.在Django项目中设置连接数据库的相关配置(告诉Django连接哪个数据库)

3.Django框架中用pymysql代替默认的MySQLDB连接MySQL数据库

4.在app下面的models.py文件中定义一个类,这个类必须继承models.Model

5.执行两个命令

(1)python3 manage.py makemigrations

(2)python3 manage.py migrate

具体实现如下:

1.手动创建数据库

Django框架之ORM对表结构操作

2.在Django项目中设置连接数据库的相关配置(告诉Django连接哪个数据库)

在项目同名文件夹中的settings.py文件中找"DATABASES"一个变量,配置如下:

# 数据库相关配置
DATABASES = {
'default': {
# 连接数据库类型
'ENGINE': 'django.db.backends.mysql',
# 连接数据库地址
'HOST':'127.0.0.1',
# 端口
'PORT':3306,
# 数据库名称
'NAME':'oldboy',
# 用户
'USER':'root',
# 密码
'PASSWORD':'',
}
}

3.Django框架中用pymysql代替默认的MySQLDB连接MySQL数据库

在项目同名文件夹的__init__.py中添加如下:

import pymysql
# 告诉Django用pymysql来代替默认的MySQLDB,因为Mysqldb是支持python2,不支持python3
pymysql.install_as_MySQLdb()

4.在app下面的models.py文件中定义一个类,这个类必须继承models.Model

ORM相关的只能写在这个文件里,写到别的文件里Django找不到

from django.db import models

# Create your models here.

class UserInfo(models.Model):
id=models.AutoField(primary_key=True) # 创建一个自增的主键字段
name=models.CharField(null=False,max_length=20) # 创建一个varchar类型的不能为空的字段,其中最大长度必须设置

5.执行两个命令

(1)python manage.py makemigrations

Django框架之ORM对表结构操作

(2)python manage.py migrate

Django框架之ORM对表结构操作

数据库中创建表的结果如下:

Django框架之ORM对表结构操作

命令1:python manage.py makemigrations  将models.py里面的改动记录到对应模块里的migrations文件夹下面,例如:app02/migrations下

命令2:python manage.py migrate  把改动翻译成SQL语句去数据库执行

Django框架之ORM对表结构操作

通过以上步骤,实现了通过ORM对表的创建,如果修改表结构的话,将对应表的类进行修改,重新运行两个命令即可。

上一篇:PHP 全局变量 $_REQUEST 的分析


下一篇:Oracle中的自增-序列-SEQUENCE