IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 社区版PyCharm中Django项目连接mysql数据库 -> 正文阅读

[Python知识库]社区版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,会来到登录界面。

登录成功页面:

?

?

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-10-08 20:37:01  更:2022-10-08 20:40:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/26 3:29:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计