使用|使用 Django 搭建后台 API 服务(一)
开发环境
IDE:Pycharm 2021.1.1
系统:macOS Mojave 10.14.6
Python 3.9.2
环境准备
安装 Python
【使用|使用 Django 搭建后台 API 服务(一)】略
安装 Django
pip3 install Django
pip3 install djangorestframework
创建项目
django-admin startproject api
创建应用
python3 manage.py startapp pms
编辑 api/settings.py
INSTALLED_APPS = [
...
'rest_framework',
'pms.apps.PmsConfig'
]
使用 MySQL 数据库 安装 MySQL 驱动
pip3 install mysqlclient
修改配置
编辑文件 api/settings.py
# settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'pms',
'HOST': 'localhost',
'PORT': '3306',
'USER': 'root',
'PASSWORD': '123'
}
}
修改时区
编辑文件 api/settings.py
TIME_ZONE = 'Asia/Shanghai'
执行数据库迁移
# 迁移数据库
python3 manage.py migrate# 创建超级管理员
python3 manage.py createsuperuser
创建模型 编辑 pms/models.py
from django.db import modelsclass Project(models.Model):
name = models.CharField(max_length=100)
start_date = models.DateField
end_date = models.DateField
# 生成迁移文件
python3 manage.py makemigrations pms# 查看对应的迁移 SQL
python3 manage.py sqlmigrate pms 0001# 执行迁移(模型同步到数据库)
python3 manage.py migrate
创建序列化 新建 pms/serializers.py,编辑:
from rest_framework import serializers
from pms.models import Projectclass ProjectSerializer(serializers.ModelSerializer):
class Meta:
model = Project
fields = ['id', 'name', 'start_date', 'end_date']
编辑视图 编辑 pms/views.py
from rest_framework import viewsets
from pms.models import Project
from pms.serializers import ProjectSerializerclass ProjectViewSet(viewsets.ModelViewSet):
queryset = Project.objects.all()
serializer_class = ProjectSerializer
编辑路由 编辑 pms/url.py
from django.urls import include
from rest_framework.routers import DefaultRouter
from pms import viewsrouter = DefaultRouter()
router.register(r'projects', views.ProjectViewSet)urlpatterns = [
path('', include(router.urls)),
]
运行服务
python3 manage.py runserver
测试
# 创建项目
POST http://127.0.0.1:8000/projects/
请求:
{
"name": "移居火星项目",
"start_date": "2021-01-01",
"end_date": "2021-01-31"
}
# 获取项目列表
GET http://127.0.0.1:8000/projects/
结果:
[
{
"id": 1,
"name": "移居火星项目",
"start_date": "2022-01-01",
"end_date": "2072-12-30"
}
]
# 获取项目详情
GET http://127.0.0.1:8000/projects/1/
结果:
{
"id": 1,
"name": "移居火星项目",
"start_date": "2022-01-01",
"end_date": "2072-12-30"
}
# 更新项目
PUT http://127.0.0.1:8000/projects/1/
请求:
{
"name": "移居火星项目2",
"start_date": "2022-01-01",
"end_date": "2072-12-30"
}
# 删除项目
DELETE http://127.0.0.1:8000/projects/1/
推荐阅读
- 由浅入深理解AOP
- 【译】20个更有效地使用谷歌搜索的技巧
- mybatisplus如何在xml的连表查询中使用queryWrapper
- MybatisPlus|MybatisPlus LambdaQueryWrapper使用int默认值的坑及解决
- MybatisPlus使用queryWrapper如何实现复杂查询
- 六步搭建ES6语法环境
- django-前后端交互
- iOS中的Block
- Linux下面如何查看tomcat已经使用多少线程
- 使用composer自动加载类文件