19-Django REST framework-DRF工程搭建

简介: 19-Django REST framework-DRF工程搭建

前言

  • 本篇来学习DRF工程搭建及体验

环境安装与配置

DRF需要以下依赖:

  • Python (2.7, 3.4, 3.5, 3.6, 3.7)
  • Django (1.11, 2.0, 2.1)

DRF是以Django扩展应用的方式提供的,所以我们可以直接利用已有的Django环境而无需从新创建。(若没有Django环境,需要先创建环境安装Django)

安装DRF

pip install djangorestframework

注册DRF应用

INSTALLED_APPS = [
    ...
    'rest_framework',
]

DRF体验

1. 创建序列化器

  • 在book应用中新建serializers.py用于保存该应用的序列化器
# -*- coding: utf-8 -*-
# @Time    : 2022/9/24
# @Author  : 大海
from rest_framework import serializers
from book.models import BookInfo
class BookInfoSerializer(serializers.ModelSerializer):
    """图书数据序列化器"""
    class Meta:
        model = BookInfo  # 指定模型
        fields = '__all__'  # 指定序列化器包含所有字段
  • model :指明该序列化器处理的数据字段从模型类BookInfo参考生成
  • fields: 指明该序列化器包含模型类中的哪些字段,'all’指明包含所有字段

2. 编写视图

  • 在book应用的views.py中创建视图BookInfoViewSet
class BookInfoViewSet(ModelViewSet):
    queryset = BookInfo.objects.all()  # 指定查询集
    serializer_class = BookInfoSerializer  # 指定序列化器
  • queryset :指明该视图集在查询数据时使用的查询集
  • serializer_class: 指明该视图在进行序列化或反序列化时使用的序列化器

3. 定义路由

  • 在book应用的urls.py中定义路由信息
from rest_framework.routers import DefaultRouter
urlpatterns = [
    path('admin/', admin.site.urls),
]
router = DefaultRouter()  # 可以处理视图的路由器
router.register(r'books', views.BookInfoViewSet)  # 向路由器中注册视图集
urlpatterns += router.urls  # 将路由器中的所以路由信息追到到django的路由列表中

4. 运行测试

相关文章
|
XML JSON 前端开发
【Django学习笔记 - 17】:序列化和反序列化(restful接口小案例、DRF的工程搭建、序列化器与序列化、验证、保存)
【Django学习笔记 - 17】:序列化和反序列化(restful接口小案例、DRF的工程搭建、序列化器与序列化、验证、保存)
447 0
【Django学习笔记 - 17】:序列化和反序列化(restful接口小案例、DRF的工程搭建、序列化器与序列化、验证、保存)
|
测试技术 开发者 Python
Django 工程目录结构设计
Django 工程目录结构
8305 0
|
Python 数据安全/隐私保护
第03章节-Python3.5-今日Django工程的创建 2
用pychram创建Django程序 file->New Project image.png image.png image.
1078 0
|
应用服务中间件 Python nginx
第08章节-Python3.5-Django工程创建 7
4、Django 安装方法: pip3 install django 4、Django pip3 install django C:\Python35\Scripts # 创建Djan...
1283 0
|
Python 开发工具
|
22天前
|
安全 数据库 C++
Python Web框架比较:Django vs Flask vs Pyramid
【4月更文挑战第9天】本文对比了Python三大Web框架Django、Flask和Pyramid。Django功能全面,适合快速开发,但学习曲线较陡;Flask轻量灵活,易于入门,但默认配置简单,需自行添加功能;Pyramid兼顾灵活性和可扩展性,适合不同规模项目,但社区及资源相对较少。选择框架应考虑项目需求和开发者偏好。
|
3天前
|
运维 监控 Serverless
Serverless 应用引擎产品使用之阿里函数计算中在自定义环境下用debian10运行django,用官方层的python3.9,配置好环境变量后发现自定义层的django找不到了如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
12 3
|
5天前
|
存储 搜索推荐 开发者
django-haystack,具有全文搜索功能的 Python 库!
django-haystack,具有全文搜索功能的 Python 库!
14 0
|
6天前
|
SQL 缓存 数据库
在Python Web开发过程中:数据库与缓存,如何使用ORM(例如Django ORM)执行查询并优化查询性能?
在Python Web开发中,使用ORM如Django ORM能简化数据库操作。为了优化查询性能,可以:选择合适索引,避免N+1查询(利用`select_related`和`prefetch_related`),批量读取数据(`iterator()`),使用缓存,分页查询,适时使用原生SQL,优化数据库配置,定期优化数据库并监控性能。这些策略能提升响应速度和用户体验。
9 0