Django链接MySQL数据库

前提

已经安装了MySQL并已经配置成功,安装了数据库可视化操作软件如Navicat GUI,本文利用Navicat提前创建了数据库duck,会在后面用到。以下为详细步骤。


创建Django项目

已创建的忽略。默认创建即可,包含sqlite数据库,后续修改。


APP创建

已创建的忽略。注意APP名称,如blog


settings(项目目录下)

在INSTALLED_APP下添加:

'blog',


mysqlclient安装

(项目所在环境下)命令行:

pip install mysqlclient

conda用户:

conda install mysqlclient


settings(项目目录下)


DATABASES={
    'default':{
        'ENGINE':'django.db.backends.mysql',
        'NAME':'duck', # 换成你在MySQL里创建的数据库名
        'HOST':'localhost',
        'PORT':'3306',
        'USER':'root',
        'PASSWORD':'123456', # 你的MySQL密码
        }
}

测试

blogAPP的models.py中添加一个类,并将其映射到数据库duck中:

创建的类如下所示:


from django.db import models
​
# Create your models here.
class Project(models.Model):
    id = models.AutoField(primary_key = True)
    name = models.CharField(max_length=50)
    period = models.CharField(max_length=50)
    role = models.CharField(max_length=50)
    desc = models.CharField(max_length=200)
    duty = models.CharField(max_length=500)

该列子copy了B站司马师:https://www.bilibili.com/video/BV1TE411n71p?from=search&seid=5650919969935816754


迁移

到这里,按司马师的教程可以执行以下代码进行迁移了


python manage.py makemigrations
python manage.py migrate

但我的报错。


错误记录

Did you install mysqlclient?

原因:虽然安装了mysqlclient,但是没有安装pymysql


安装pymysql

pip install pymysql

conda用户:

conda install pymysql

然后项目主目录下的__ini__.py中添加:


import pymysql
pymysql.install_as_MySQLdb()

保存。

然后再次迁移:


python manage.py makemigrations
python manage.py migrate

创建成功

数据库创建成功
数据表映射成功

启动django服务报错


py manage.py runserver

RuntimeError: 'cryptography' package is required for sha256_password or caching_sha2_password auth methods
提示需要安装cryptography包。那就安装:

pip install cryptography

conda用户:

conda install cryptography

安装后再次运行即可:

windows:py manage.py runserver

到这里我的链接就成功了。


其他人还浏览了:



公众号

关注公众号,获取一手资讯

“ Django链接MySQL数据库 ” comments 0

评论/回复

电子邮件地址不会被公开。 必填项已用*标注