简介
提起Python 后端开发, Django 是很多人第一时间想到的, 作为老牌web 框架, Django 属于全能型选手, 主打简单快速开发, 开发者只要定义好实体类, 稍加配置, 对应的数据库表, 增删改查甚至前端界面就都自动生成了. 然而随着前后端分离开发的浪潮, Django 的MVT 架构有点落伍了, 还好DRF 的出现, 又为Django 延续了生命周期
DRF 全称djangorestframework, 是一个基于Django 的Restful 风格的API 框架, 为Django提供了序列化器, 认证, 权限, 分页, 过滤和限流等功能, 可以很方便的实现前后端分离架构下的后端服务
环境搭建
Django 目前最新版本是4.2, 支持Python 3.8+, 对应DRF 3.14.0版本
创建python 虚拟环境
避免当前项目与其他项目相互干扰
# 创建项目文件
mkdir dazhi
cd dazhi
# 创建虚拟环境
python -m venv venv
# 激活虚拟环境
source venv/bin/activate
# windows powerShell 这样激活
venv\Scripts\Activate.ps1
后续命令行操作都要在虚拟环境中进行, 如果想退出虚拟环境就用deactivate 命令
安装框架
主要是Django 和DRF, 其他组件后续使用到再安装
# 安装Django
pip install django
# 安装DRF
pip install djangorestframework
创建Django项目
这里要用django 提供的django-admin 命令, 创建一个名为base 的项目作为我们的根项目, 注意base 后面有一个点, 代表在当前目录创建项目, 不然它默认会新建一个目录
django-admin startproject base .
创建应用
刚刚创建的项目, 现在又创建了应用, 这其实是Django 项目的一个特点: 每一个项目可以配置多个站点对应多个应用.
python manage.py startapp dazhi
启动服务
执行下面的命令启动服务后, 在浏览器打开http://127.0.0.1:8000 就可以看到后端服务已经正常运行了
python manage.py runserver
此时项目的目录结构应该是这样的:
dazhi/ -- 后端代码目录
base/ -- 根项目目录
wsgi.py -- wsgi web服务器配置
settings.py -- 全局配置
urls.py -- 地址-接口映射配置
dazhi/ -- 应用目录
apps.py -- 应用配置
migrations/ -- 迁移目录, 存储数据库变更
modes.py -- 实体类定义文件
views.py -- 接口(视图) 配置
manage.py -- django 命令脚本
项目配置
整个项目的配置都在settings.py 文件里, 现在打开这个配置文件, 进行修改
配置应用
找到INSTALLED_APPS, 这里用来配置当前项目安装的应用, 我们把Django 自带的部分应用注释掉, 然后加上刚刚自己创建的应用以及DRF:
INSTALLED_APPS = [
# 管理后台, 不需要
# 'django.contrib.admin',
# 认证授权系统
'django.contrib.auth',
# 内容类型框架
'django.contrib.contenttypes',
# 会话框架, 前后端分离不需要会话
# 'django.contrib.sessions',
# 消息框架, 也用不到
# 'django.contrib.messages',
# 静态文件管理
'django.contrib.staticfiles',
# 上一步创建的应用
'dazhi.apps.DazhiConfig',
# DRF 框架
'rest_framework',
]
配置数据库
Django 默认使用sqllite, 不过生产环境一般用MySQL. MySQL 的安装使用不再过多介绍, 先在MySQL 里创建好dazhi 数据库, 然后在settings.py 加上MySQL数据库配置, 账户密码要改成你电脑上面的
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
"NAME": "dazhi",
"USER": "root",
"PASSWORD": "root",
"HOST": "127.0.0.1",
"PORT": "3306",
}
}
执行迁移
迁移(migrate) 是Django 的ORM 功能提供的命令, 用于为代码中定义的实体类, 创建对应的数据库表 Django 会将生成的sql 放在migrations/ 目录, 然后在数据库中创建对应的表. 后面创建新的实体类后, 也都要执行这两个命令
# 为应用dazhi 创建迁移文件
python mange.py makemigrations dazhi
# 执行迁移
python manage.py migrate
到这里, django 环境就搭建完成了~
参考文档
Django 文档内容 | Django 文档 | Django