DRF 纯净版创建使用

05-14 1419阅读

【一】介绍

(1)使用原因

  • 在Django中,contrib 包包含了许多内置的app和中间件,如auth、sessions、admin等,这些app在创建新的Django项目时默认是包含在内的。
  • 然而,在开发RESTful API时,可能不需要使用所有这些内置app,尤其是当打算使用自定义的用户模型或不需要Django的会话管理时。在这种情况下,可以创建一个更加“纯净”的Django环境,只包含真正需要的部分。

    (2)注意事项

    • 版本兼容性:在使用Django和DRF时,需要注意不同版本之间的兼容性。一些新的功能和修复可能只在特定版本的框架中可用。
    • 安全性:虽然Django和DRF都内置了多种安全特性,但开发者仍然需要关注安全问题,如输入验证、权限控制等。同时,也需要及时关注安全漏洞和修复。
    • 性能优化:Django和DRF的性能优化可能需要一些额外的配置和调试。开发者需要根据项目的实际需求进行性能优化,以确保应用的稳定性和响应速度。

      【二】创建一个Django项目

      (1)创建一个新虚拟环境的项目

      1. 选择File,然后点击New Project
      2. 选择Pure Python
      3. 起一个项目名,选择使用新的虚拟环境,虚拟环境的位置放在新项目的根目录下
      4. 选择一个解释器,点击创建即可

      DRF 纯净版创建使用

      (2)安装django和drf

      1. 使用terminal安装django,这里指定版本是4.2.2的版本

        • pip install django==4.2.2
          
        • 使用terminal安装drf,这里使用的是默认安装,装的是最新的版本

          • pip install djangorestframework
            
          • 继续使用terminal创建项目,项目名也叫做文件名,位置在当前项目的位置

            • django-admin startproject clean_drf .
              
            • 最后再创建一个app用于测试,名字叫做api

              • django-admin startapp api
                
      • 如果创建成功,但是pycharm不显示的话刷新项目文件

        DRF 纯净版创建使用

        【三】修改配置文件改为纯净版

        (1)app保留和删除

        • 肯定要保留的app有
          1. rest_framework
            • drf实际上是一个app,所以需要保留
            • api
              • 其他app,这里就一个测试api
        • 可保留的app
          1. django.contrib.contenttypes
            • DRF的视图集和反向关系功能,如果不需要可以移除它
            • django.contrib.staticfiles
              • 静态文件管理相关,在纯API项目中是不需要的
              • 但是浏览器的测试就会显示的很丑了,缺失静态资源
              • DRF 纯净版创建使用

          DRF 纯净版创建使用

          (2)中间件保留和删除

          • 建议保留
            1. django.middleware.common.CommonMiddleware
              • HTTP特性,如“Forbidden”响应和“Vary”响应头等
              • django.middleware.csrf.CsrfViewMiddleware
                • 如果API需要处理POST、PUT、PATCH等请求,并且希望保护这些请求免受CSRF攻击,那么需要保留

            DRF 纯净版创建使用

            • 其他中间件说明
              1. django.middleware.security.SecurityMiddleware
                • 这个中间件添加了一些安全相关的HTTP头。
                • django.contrib.auth.middleware.AuthenticationMiddleware
                  • 这个中间件处理用户认证。在纯API项目中,更倾向于使用DRF的认证机制,自定义认证方法。
                  • django.middleware.clickjacking.XFrameOptionsMiddleware
                    • 这个中间件提供点击劫持保护。

              (3)其他修改

              • TEMPLATES注释掉不需要的内容

                • DRF 纯净版创建使用
                • 重点:添加匿名用户信息到配置文件

                  • REST_FRAMEWORK = {
                        "UNAUTHENTICATED_USER": None,
                    }
                    

                    【四】测试

                    (0)pycharm配置

                    • pycharm设置中配置
                      1. 点击File,再点击settings
                      2. 搜索django,选择最下面的django选项
                      3. 填写信息
                        • django project root:项目根目录
                        • Settings:配置文件
                        • 最后点击应用和ok

                      DRF 纯净版创建使用

                      • 启动配置:很简单,跟着点就可以

                        DRF 纯净版创建使用

                        (1)路由

                        • 总路由:urls.py

                          • from django.contrib import admin
                            from django.urls import path, include
                            urlpatterns = [
                                # path("admin/", admin.site.urls),
                                path("api/v1/", include('api.urls')),
                            ]
                            
                          • app分发路由:api/urls.py

                            • from django.urls import path
                              from .views import TestView
                              urlpatterns = [
                                  path('test/', TestView.as_view(), name='test')
                              ]
                              

                              (2)视图

                              • 视图测试函数:api/views.py

                                • from rest_framework.views import APIView
                                  from rest_framework.response import Response
                                  class TestView(APIView):
                                      def get(self, request):
                                          return Response('测试成功')
                                  

                                  (3)测试结果

                                  DRF 纯净版创建使用

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]