Django连接mysql数据库

Django连接mysql数据库

1、创建Django项目
Django连接mysql数据库需要手动创建数据库,Django会根据模型类自动生成数据表
在这里插入图片描述
2、创建应用

python manage.py startapp mysqltest

在这里插入图片描述
在这里插入图片描述
3、注册应用
在这里插入图片描述
4、配置数据库
配置Django02/setting.py下的DATABASE如下:

DATABASES = {
    'default': {
        # 'ENGINE': 'django.db.backends.sqlite3',
        # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
         'ENGINE': 'django.db.backends.mysql',
         'NAME':'Django_test', # 数据库名,使用的数据库必须先手动创建
         'USER':'root', # 连接mysql的用户名
         'PASSWORD':'dry249512', #密码
         'HOST':'localhost', #指定mysql数据库所在的电脑ip
         'PORT':3306, # 数据库端口号
    }
}

配置Django02/init.py如下:
前提需要安装pymysql,如果未安装可以使用如下命令安装。

pip install pymysql
import pymysql
pymysql.install_as_MySQLdb()

在这里插入图片描述

5、 定义模型类

  • 模型类被定义在"应用/models.py"文件中,此例中为"mysqltest/models.py"文件。
  • 模型类必须继承自Model类,位于包django.db.models中。
  • 提示:对于重要数据使用逻辑删除。

1.打开mysqltest/models.py文件,定义模型类如下

from django.db import models
# Create your models here.
#定义图书模型类BookInfo
class BookInfo(models.Model):
     # 图书名称
     btitle = models.CharField(max_length=20)
     # 出版日期
     pub_date = models.DateField()
     # 阅读量
     reads = models.IntegerField(default=0)
     # 评论量
     bcomment = models.IntegerField(default=0)
     # 逻辑删除
     isDelete = models.BooleanField(default=False)

#定义英雄模型类HeroInfo
class HeroInfo(models.Model):
    # 英雄名
    hname = models.CharField(max_length=20)
    # 性别
    hsex = models.BooleanField(default=False)
    # 备注
    hcomment = models.CharField(max_length=200)
    # 关系属性 外键
    hbook = models.ForeignKey('BookInfo',on_delete=models.CASCADE)
    # 逻辑删除
    isDelete = models.BooleanField(default=False)

2.迁移
生成迁移文件。

python manage.py makemigrations

生成迁移文件的时候出现错误,把数据库切换成了mysql,需要安装pymysql模块之后,Django框架才可以操作mysql数据库。安装命令如下:

pip install pymysql

然后执行如下命令生成表。

python manage.py migrate

在这里插入图片描述
在这里插入图片描述
执行完上述命令之后就可以看到生成的数据表。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值