目录
系统模块架构
博客页面功能架构
上篇,我们模拟了Django实现Web应用的过程,但是没有涉及到和数据库的交互。
一个完整的Web应用是无法脱离数据库而单独存在的。
Django作为一个Web框架,有它的一套完整的实现Web应用的模式。
Django 框架主要关注的是模型(Model)、模板(Template)和视图(Views),称为MTV模式。
它们各自的职责如下:
层次 | 职责 |
模型(Model),即数据存取层 | 处理与数据相关的所有事务: 如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。 |
模板(Template),即业务逻辑层 | 处理与表现相关的决定: 如何在页面或其他类型文档中进行显示。 |
视图(View),即表现层 | 存取模型及调取恰当模板的相关逻辑。模型与模板的桥梁。 |
简单来说就是Model存取数据,View决定需要调取哪些数据,而Template则负责将调取出的数据以合理的方式展现出来。
Model部分就是和数据库相关的部分,用于存储数据。
Django对各种数据库提供了很好的支持,包括PostgreSQL、MySQL、SQLite和Oracle,而且为这些数据库提供了统一的API方法,这些API统称为ORM(Object Relational Mapping,简称ORM)框架。
通过使用Django内置的ORM框架可以实现数据库连接和读写操作。
ORM框架是一种程序技术,用于实现面向对象编程语言中不同类型系统的数据之间的转换。
从效果上说,它创建了一个可在编程语言中使用的“虚拟对象数据库”,通过对虚拟对象数据库的操作从而实现对目标数据库的操作,虚拟对象数据库与目标数据库是相互对应的。
下面我们来创建一个数据库并完成Django和MySQL数据库的连接。
首先 Django 只能操作到数据表级别,我们可以连接到数据库,然后对数据库里面的表的数据接口和内容进行处理,但是我们无法直接新建数据库,修改数据库级别的参数。
所以我们需要先手工创建一个数据库。
这里我分别演示直接通过Windows CMD 终端命令 和通过图形化工具SQLyog创建一个django4blog数据库。
首先按下Win + R 运行 CMD,进入命令行终端
输入命令进入我们前面安装好Mysql数据库的bin文件夹
比如:
cd D:\Program Files\mysql-8.0.13-winx64\bin
接着输入命令: mysqld --console
启动Mysql服务器。
然后输入命令:mysql -u root -p
后输入密码,登录数据库。
最后我们输入创建数据库的命令:
create database django4blog default charset=utf8; # 防止编码问题,指定为 utf8
至此,我们通过命令行完成了一个名为 django4blog 的数据库。
如果安装了图形化工具,比如SQLyog,那创建一个数据库就更加简单了。
首先打开SQLyog登录连接界面。
输入主机地址,用户名,密码,端口号,点击连接按钮进入数据库图形管理界面。
通过 数据库--创建数据库 菜单,完成数据库的创建。
Django默认自带SQLite 数据库,但是我们本次的用到的数据库是MySQL。
要想在Django使用MySQL数据库我们还需要做如下几个步骤:
Django使用MySQL需要mysql 驱动,如果你没安装 mysql 驱动,可以执行以下命令安装:
pip install pymysql
接着在与 settings.py 同级目录下的 __init__.py 中引入pymysql库:
- import pymysql
- pymysql.install_as_MySQLdb()
安装并引入pymysql 之后, 进入DjangoBlog 项目下的DjangoBlog 文件夹,打开setting.py 文件,找到DATABASES配置项,修改DATABSES配置项为如下内容:
- # Database
- # https://docs.djangoproject.com/en/4.1/ref/settings/#databases
-
- DATABASES = {
- 'default': {
- 'ENGINE': 'django.db.backends.mysql', # 数据库引擎
- 'NAME': 'django4blog', # 数据库名称
- 'HOST': '127.0.0.1', # 数据库地址,本机 ip 地址 127.0.0.1
- 'PORT': 3306, # 端口
- 'USER': 'root', # 数据库用户名
- 'PASSWORD': '123456', # 数据库密码
- }
- }
数据库配置DATABASES:
配置数据的连接信息,如连接数据库的模块、数据库名称、数据库的账号密码等,默认连接sqlite数据库。
本篇介绍了两种创建数据库的方法,同时我们完成了一个名为django4blog 的数据库创建用于我们整个项目的数据存储。
同时,我们在django项目中安装了用于连接MySQL 的库: pymysql
最后我们修改了setting.py 中的数据库配置项。
至此,我们后续的项目可以通过Django模型直接来操作我们django4blog 的数据了。
下篇我们来进行整个项目的数据库设计,规划下我们需要几个表,每个数据表需要哪些字段,字段的数据格式都是什么样子的。