[Django]数据模型

一、数据库配置

  • mysql

Django项目默认使用mysqldb模块进行和mysql数据库之间的交互操作,但是mysqldb 模块对于 python3.4 以上的版本支持还不够完善,所以我们要使用替代方案,通过 pymysql 模块完成和数据库之间的交互过程。
Django 连接 mysql 数据库的操作,是通过根模块的配置实现的,在项目根模块的配置文件 settings.py 中,我们可以查询到如下默认配置:

pip install pymysql -i http://mirrors.aliyun.com/pypi/simple/

# 引入需要的模块
import pymysql
# 转换数据库支持
pymysql.install_as_MySQLdb()


DATABASES = {
    
    
    'default': {
    
    
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'db_test_django',
        'HOST':'127.0.0.1',
        "PORT":"3306",
        "USER":"root",
        "PASSWORD":"tangsiqi123A",
        "CHARSET":"utf8"
    }
}

在这里插入图片描述

二、定义创建模型

在 Django 项目中定义模型数据,其实就是定义 class 类型,通过类型创建的对象来封装和管理数据,一定要在这里明确关联和对应关系。
在这里插入图片描述
有了对应关系之后,我们要创建的模型对象的属性必须和数据库中的字段类型对应起来
在这里插入图片描述
每个字段定义时,都会有自己的一些特殊的选项指定:
在这里插入图片描述
在大部分项目中,还会涉及到多表关联操作:
在这里插入图片描述

from django.db import models


# Create your models here.

class User(models.Model):
    id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=50)
    nickname = models.CharField(max_length=255, null=True,blank=True)
    age = models.IntegerField()


class Article(models.Model):
    id = models.AutoField(primary_key = True)
    title = models.CharField(max_length=255)
    content = models.TextField()

    author = models.ForeignKey(User, on_delete=models.CASCADE)

在这里插入图片描述

三、数据库同步操作

  • 创建迁移记录文件
python manage.py makemigrations

通过运行makemigrations命令,Django 会检测你对模型文件的修改,也就是告诉Django你对模型有改动,并且你想把这些改动保存为一个“迁移(migration)”。

migrations是Django保存模型修改记录的文件,这些文件保存在磁盘上。在例子中,它就是blog/migrations/0001_initial.py,你可以打开它看看,里面保存的都是人类可读并且可编辑的内容,方便你随时手动修改。
在这里插入图片描述

  • 查看生成的sql语句
python manage.py sqlmigrate blog 0001

在这里插入图片描述

  • 同步到数据库
python manage.py migrate

在这里插入图片描述
在这里插入图片描述

四、交互模式

python manage.py shell

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/tangsiqi130/article/details/131050373