# drf_example **Repository Path**: django-devops/drf_example ## Basic Information - **Project Name**: drf_example - **Description**: drf_example demo - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-09-25 - **Last Updated**: 2022-09-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Django Rest Framework框架示例 ## 1.运行环境 创建虚拟环境 ``` $ python -m venv venv $ source venv/bin/activate ``` 安装所需依赖包 ``` $ pip install -r requirements.txt ``` 迁移数据库 ``` $ python manage.py makemigrations app1 $ python manage.py migrate app1 ``` 运行demo ``` $ python manage.py runserver Watching for file changes with StatReloader Performing system checks... System check identified no issues (0 silenced). September 25, 2022 - 02:58:57 Django version 4.1.1, using settings 'drf_example.settings' Starting development server at http://127.0.0.1:8000/ ``` ## 2.实现视图 Django Rest Framework实现API开发的三种方式 - 基于函数的视图 - 基于类的视图 - 基于模型视图类的视图 ### 2.1 基于模型视图类的视图 https://q1mi.github.io/Django-REST-framework-documentation/tutorial/6-viewsets-and-routers_zh/ ### 2.2 视图类的选择 APIView和viewsets应该怎样选择呢? Django REST framework的官方文档中也有介绍过二者的取舍问题,但帮助不大。 总结一下,当视图要实现的功能中,存在数据运算、拼接的业务逻辑时,比如,API成功访问一次,用户表中的money记录减少1,可以一律选择APIView的方式来写视图类, 除此以外,优先使用viewsets的方式来写视图类,毕竟使用viewsets+Router在常规功能上效率极高。