欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Django 中ORM操作数据库的使用方法、步奏、案例

程序员文章站 2022-04-16 10:29:18
...

ORM对应关系

通常在关系比较复杂的情况下需要单独创建一张表格来关联其他表

—> 数据表
对象 —> 数据行
属性 —> 字段
Django 中ORM操作数据库的使用方法、步奏、案例

能做的事
  • 1.操作数据表
  • 2.操作数据行
不能做的事
  • 不能创建数据库,必须手动创建

使用步骤

  • 1.创建数据库
  • 2.在Django项目中设置连接配置 setting.py中设置
DATABASES = {
    'default': {
        # 连接数据库类型 在末尾写入mysql即可
        'ENGINE': 'django.db.backends.mysql',
        # 数据库地址
        'HOST': '127.0.0.1',
        # 端口
        'PORT': 3306,
        # 数据库名
        'NAME': '创建的库名',
        # 用户
        'USER': 'root',
        # 密码
        'PASSWORD': '密码'
    }
}
  • 3.Django数据库连接工具设置

模块pymysql代替默认的MySQLDB,因为其不支持python3

Django总项目目录下 __init__.py 内写入

# Django总项目目录下 __init__.py 内写入,不是app文件下!!!!
import pymysql

# 代替MySQLdb
pymysql.install_as_MySQLdb()
  • 4.modesl.py 代码定义表格式,等待创建
'''在aap内models.py 中定义类,必须继承models.Model'''
# 内置固定语法
class UserInfo(models.Model):
    id = models.AutoField(primary_key=True)  # 创建一个自增的主键字段

    '''如果要做【外键】:字段 = models.ForeignKey(to='关联的对象!表',on_delete=models.CASCADE)'''

    # 创建varchar类型,不能为空字段,最大长度20、且唯一不能重复
    name = models.CharField(null=False, max_length=20,unique=True)  
  • 5.开始执行命令来创建表
    直接在pycharm 下面Terminal窗口执行
'''登记models.py内的改动,并存到app下 migrations内'''
python3 manage.py makemigrations 
'''把内容,翻译成数据库语言并执行'''
python3 manage.py migrate

或者
Django 中ORM操作数据库的使用方法、步奏、案例
直接输入 makemigrations 等命令,带有智能提示~


注意事项

Django 中ORM操作数据库的使用方法、步奏、案例
需要在models中对应的表格字段 后添加 default='默认值'

多对多表创建

有出版商,作者,和书。一本书有多个作者,只有一个出版商。
作者和出版商好理解,各一个表就是了。书应该作为几个表呢?1个和2个都可以。如果你主要是以出版商和作者为对象操作,可以把书看成一个纽带而已,书这个表里存放着出版商和作者的关系。又因为一行存不下所有作者的id(假设没有压缩),所以book表里面会有很多book会重复。所以book表的名字改成author_publisher搞不好还更妥当。

'''作者表与书表 多对多的情况下(一个作者可以写多本书,一本书也可以多个作者)'''
class Author(models.Model):
    id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=16,null=False,unique=True)  # 不为空, 唯一

    # 作者关联书籍表
    # 设置当前表与指定表的关联,ORM自动生成一张表对应,格式 app_当前表_关联表
    book = models.ManyToManyField(to='Book')  
    '''会生成一张app+author_book的表'''
相关标签: ORM Django