[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

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值