Django的Mysql配置笔记

  • 先在Mysql中建立好一个数据库:
CREATE DATABASE `school` CHARACTER SET utf8 ;
  • 然后在项目的setting.py文件中修改数据库配置(注意数据库名称对应):
DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.mysql",
        "NAME": "school",
        "USER": "root",
        "PASSWORD": "password",
        "HOST": "127.0.0.1",
        "PORT": 3306,
    }
}
  • 修改__init__文件(注意是项目的而不是app应用的):
import pymysql

pymysql.install_as_MySQLdb()

到此为止Django连接Mysql的配置就完成了,接下来的需要做的就是建立app并编写model了,详见(Django初始化命令笔记_molihuacha2333的博客-CSDN博客。model直接决定数据库的数据,如下:

from django.db import models

# Create your models here.
"""
 该类是用来生成数据库的 必须要继承models.Model
"""
class Student(models.Model):
    """
    创建如下几个表的字段
    """
    # 学号 primary_key=True: 该字段为主键
    studentNum = models.CharField('学号', primary_key=True, max_length=15)
    # 姓名 字符串 最大长度20
    name = models.CharField('姓名', max_length=20)
    # 年龄 整数 null=False, 表示该字段不能为空
    age = models.IntegerField('年龄', null=False)
    # 创建时间 auto_now_add:只有在新增的时候才会生效
    createTime = models.DateTimeField(auto_now_add=True)
    # 修改时间 auto_now: 添加和修改都会改变时间
    modifyTime = models.DateTimeField(auto_now=True)

    # 指定表名 不指定默认APP名字——类名(app_demo_Student)
    class Meta:
        db_table = 'student'
    
    # 增加 __str__() 方法以返回对象细节
    def __str__(self):
        return self.name

然后依次在终端使用以下命令迁移数据(即根据model中定义的数据在数据库中建立一个表):

# 生成迁移文件
python manage.py makemigrations
# 执行迁移操作
python manage.py migrate

此时就可以看到在Mysql数据库school中生成了一个名为student的表:

我们现在在终端对数据库进行操作,首先在终端进入交互式python命令行(shell模式):

py manage.py shell

 然后就可以在命令行模式中对数据库进行交互式操作了。首先来导入model里的Student包:

In [1]: from App_MysqlDeployment.models import Student

查看Student实例,可以看到现在什么实例也没有:

In [2]: Student.objects.all()
Out[2]: <QuerySet []>

 不要紧,现在让我们来实例化一个看看:

In [3]: s = Student(studentNum="2220171130",name="茉莉花茶",age=23)

In [4]: s.save()

In [5]: s.studentNum
Out[5]: '2220171130'

 现在可以在数据库中看到我们刚刚输入的信息了:

 再试试查看Student实例的命令,就可以看到刚刚实例化的学生信息了,和Mysql数据库一样:

In [6]: Student.objects.all()
Out[6]: <QuerySet [<Student: 茉莉花茶>]>

从数据库手动导入两个学生信息:

INSERT INTO `school`.`student` (`studentNum`, `name`, `age`, `createTime`, `modifyTime`) VALUES ('2220171131', '大耳朵图图', '22', '2022-11-20 08:17:08.140559', '2022-11-20 08:17:08.140559');
INSERT INTO `school`.`student` (`studentNum`, `name`, `age`, `createTime`, `modifyTime`) VALUES ('2220171132', '哈士奇', '22', '2022-11-20 08:17:08.140559', '2022-11-20 08:17:08.140559');

再来看看Studen的实例,可以发现在数据库中已经有三条学生信息了:

In [7]: Student.objects.all()
Out[7]: <QuerySet [<Student: 茉莉花茶>, <Student: 大耳朵图图>, <Student: 哈士奇>]>

参考:

[1] 手把手教你使用Django如何连接Mysql - 腾讯云开发者社区-腾讯云 (tencent.com)

[2] (120条消息) Django操作MySql详细教程_Python3X的博客-CSDN博客

[3] 编写你的第一个 Django 应用,第 2 部分 | Django 文档 | Django (djangoproject.com)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值