社区版PyCharm中Django项目连接mysql数据库

演示使用软件

软件:PyCharm Community Edition 2021.3.3、Navicat for MySQL

python版本:Python 3.9.7

mysql版本: 5.5.61

Django版本: 2.0 

1、创建数据库

本次项目的测试数据库为mysql,使用可视化软件Navicat。

新建一个数据库,取名为books。

create database books default charset utf8;

 

2、给项目导入mysql驱动

我们继续来完善上一个books项目,首先从配置项目使用的数据库开始。

2.1 安装pymysql包

安装Python操作MySQL的依赖库, Python 3中通常使用PyMySQL,Python 2中通常用MySQLdb。

在File->Setting->Project:Djangoproject->python Interpreter下按照图示添加PyMySQL驱动;

点击查看详细pymysql安装及使用

如果使用Python 3需要修改项目目录下的__init__.py文件并加入如下所示的代码,这段代码的作用是将PyMySQL视为MySQLdb来使用。(注意:项目目录下的__init__.py文件,而非app目录下的__init__.py文件)

import pymysql

pymysql.install_as_MySQLdb()

 2.2 配置数据库

修改项目的settings.py文件,首先将我们之前创建的应用books添加已安装的项目中,然后配置MySQL作为持久化方案。

在配置ENGINE属性时,常用的可选值包括:

  • 'django.db.backends.sqlite3':SQLite嵌入式数据库。
  • 'django.db.backends.postgresql':BSD许可证下发行的开源关系型数据库产品。
  • 'django.db.backends.mysql':转手多次目前属于甲骨文公司的经济高效的数据库产品。
  • 'django.db.backends.oracle':甲骨文公司的关系型数据库旗舰产品。

 找到DTABASE,按照图示进行修改

 NAME属性代表数据库的名称,如果使用SQLite它对应着一个文件,在这种情况下NAME的属性值应该是一个绝对路径;使用其他关系型数据库,则要配置对应的HOST(主机)、PORT(端口)、USER(用户名)、PASSWORD(口令)等属性。

2.3 根据模型自动生成关系数据库中的二维表

Django框架本身有自带的数据模型,我们稍后会用到这些模型,为此我们先做一次迁移操作。所谓迁移,就是根据模型自动生成关系数据库中的二维表,命令如下所示:

在local窗口输入命令:python manage.py migrate

结果如下:

 找到app目录下的models.py,并作内容修改

# Create your models here.
from django.db import models


class Dept(models.Model):
    """图书类"""

    num = models.IntegerField(primary_key=True, db_column='dnum', verbose_name='图书编号')
    name = models.CharField(max_length=20, db_column='dname', verbose_name='图书名称')
    booktime = models.CharField(max_length=10, db_column='dtime', verbose_name='借阅时间')

    class Meta:
        db_table = 'tb_dept'


class Emp(models.Model):
    """学生类"""

    no = models.IntegerField(primary_key=True, db_column='eno', verbose_name='学生编号')
    name = models.CharField(max_length=20, db_column='ename', verbose_name='学生姓名')
    class1 = models.CharField(max_length=10, verbose_name='班级')
    # 多对一外键关联(自参照)
    mgr = models.ForeignKey('self', on_delete=models.SET_NULL, null=True, blank=True, verbose_name='管理人员')
    sal = models.DecimalField(max_digits=7, decimal_places=2, verbose_name='月薪')
    comm = models.DecimalField(max_digits=7, decimal_places=2, null=True, blank=True, verbose_name='补贴')
    # 多对一外键关联(参照部门模型)
    dept = models.ForeignKey(Dept, db_column='dno', on_delete=models.PROTECT, verbose_name='所在学院')

    class Meta:
        db_table = 'tb_emp'

再次执行迁移操作,先通过模型生成迁移文件,再执行迁移创建二维表。

输入命令:python manage.py makemigrations books

再输入命令:python manage.py migrate

执行完数据模型迁移操作之后,可以在通过图形化的MySQL客户端工具查看到E-R图(实体关系图)。

三、利用Django后台管理模型

1、创建管理员账号

这里输入密码不会显示出来,两次密码输入一致即可创建成功。

2、启动Web服务器,登录后台管理系统。

输入命令: python manage.py runserver  

访问http://127.0.0.1:8000/admin,会来到登录界面。

登录成功页面:

猜你喜欢

转载自blog.csdn.net/m0_72084056/article/details/127120354
今日推荐