DRF快速入门
⭐都快2023年了还有人自己写增删改查代码?!?我不允许还不会有人用DRF!⭐今天教大家使用 Django Rest FrameWork 自动生成Restful风格的增删改查代码和接口文档!
⭐参考文章:首页 - Django REST 框架 (django-rest-framework.org)(官方文档)
注意:
- Django Rest FrameWork 是在Django框架下使用
- 以下内容需要先创建一个Django项目
- 什么是Restful风格:RESTful API 一种流行的 API 设计风格
安装依赖
安装
Rest FrameWork 需要满足以下条件:
- Python (3.6, 3.7, 3.8, 3.9, 3.10)
- Django (2.2, 3.0, 3.1, 3.2, 4.0, 4.1)
# 安装Django
pip install django
# 安装DRF
pip install djangorestframework
# 安装自动生成接口文档需要的依赖
pip install coreapi
设置
- 以下内容在项目中
seeting.py
配置
INSTALLED_APPS = [
...
'rest_framework', # 注册app
'myapp', # 记得注册自己的app
]
# 数据库记得自行配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '***',
'USER': '***',
'PASSWORD': '***',
'HOST': '127.0.0.1',
'PORT': '3306',
}
}
快速使用
配置models
- 以下内容在 app 中的
models.py
配置
from django.db import models
class Student(models.Model):
# 模型字段
name = models.CharField(max_length=100, verbose_name="姓名")
sex = models.BooleanField(default=1, verbose_name="性别")
age = models.IntegerField(verbose_name="年龄")
class_null = models.CharField(max_length=5, verbose_name="班级编号")
description = models.TextField(max_length=1000, verbose_name="个性签名")
class Meta:
# 表名称
db_table = "tb_student"
# 表详细名称
verbose_name_plural = "学生"
- 配置好models记得迁移数据库
python manage.py makemigrations
python manage.py migrate
配置serializers
- 以下内容在app中新建
serializers.py
目录
from rest_framework import serializers
from app.models import Student
# 创建序列化器类,回头会在试图中被调用
class StudentModelSerializer(serializers.ModelSerializer):
class Meta:
# 导入对应models
model = Student
# 选择生成对应models全部的字段
fields = "__all__"
# 可选择操作的字段
# fields = ['name', 'sex']
配置view
- 以下内容在app中
views.py
配置
from rest_framework.viewsets import ModelViewSet
from .models import Student
from .serializers import StudentModelSerializer
# 生成代码 配置一个类即可
class StudentViewSet(ModelViewSet):
queryset = Student.objects.all()
serializer_class = StudentModelSerializer
配置url
- 以下内容在app目录下
urls.py
配置
from django.urls import path
from . import views
from rest_framework.routers import DefaultRouter
from rest_framework.documentation import include_docs_urls
# 路由列表
urlpatterns = [
# 配置api文档路由 title配置API文档的标题
path('docs/', include_docs_urls(title='API document')),
]
router = DefaultRouter() # 可以处理视图的路由器
router.register('students', views.StudentViewSet) # 向路由器中注册视图集
urlpatterns += router.urls # 将路由器中的所以路由信息追到到django的路由列表中
- 以下内容在项目目录下
urls.py
配置
from django.contrib import admin
from django.urls import path, include
from app import urls
urlpatterns = [
path('admin/', admin.site.urls),
path('stu/', include(urls)),
]
配置seetings
- 以下内容在项目目录下
seetings.py
配置
# 配置默认API文档
REST_FRAMEWORK = {
# coreapi接口文档
'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.AutoSchema',
}
启动项目
# 直接启动项目就可用访问啦
python manage.py runserver
- http://127.0.0.1:8000/stu/ 访问apiroot界面
- http://127.0.0.1:8000/stu/students/ 访问对数据库学生的操作界面
- http://127.0.0.1:8000/stu/docs/ 访问接口文档
页面预览:
- 接口文档
- api管理页面
⭐以上就是一些基础的配置内容啦!基础的CURD代码已经生成完毕!⭐当然DRF还可以配置的东西非常多 JWT,分页... (之后的文章会介绍到)
⭐以上内容只是快速的配置 全面API请查阅官方文档:首页 - Django REST 框架 (django-rest-framework.org)
⭐如果对你有帮助请给我点个赞吧