DRF 纯净版创建使用

【一】介绍

(1)使用原因

  • 在Django中,contrib 包包含了许多内置的app和中间件,如authsessionsadmin等,这些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. 选择一个解释器,点击创建即可

image-20240510102449127

(2)安装django和drf

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

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

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

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

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

image-20240510105922849

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

(1)app保留和删除

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

image-20240510115957499

(2)中间件保留和删除

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

image-20240510120631772

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

(3)其他修改

  • TEMPLATES注释掉不需要的内容

    • image-20240510120753857
  • 重点:添加匿名用户信息到配置文件

    • REST_FRAMEWORK = {"UNAUTHENTICATED_USER": None,
      }
      

【四】测试

(0)pycharm配置

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

image-20240510121839002

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

image-20240510122409911

(1)路由

  • 总路由:urls.py

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

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

(2)视图

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

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

(3)测试结果

image-20240510121533912

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3032068.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Jenkins android 自动打包安卓 centos8.5 运维系列五

1 新建项目android #cat android.sh #!/bin/bash rm -rf /data/.jenkins/workspace/android/app/build/outputs/apk/debug/* rm -rf /data/.jenkins/workspace/android/app/build/outputs/apk/release/* cd /data/.jenkins/workspace/android/app source /etc/profile g…

数据结构与算法===贪心算法

文章目录 定义适用场景柠檬水找零3.代码 小结 定义 还是先看下定义吧,如下: 贪心算法是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是全局最好或最优的算法。 适用场景 由于…

torch.searchsorted

torch.searchsorted 官方文档链接:torch.searchsorted — PyTorch 2.3 documentation 该函数用于在已排序的序列中查找要插入的值的位置,以保持序列的顺序, torch.searchsorted(sorted_sequence, values, *, out_int32False, rightFalse, s…

蓝桥杯13届JAVA A组 国赛

​​​​​​​ package 蓝桥杯国赛; // 贪心选个数最少的进行摆 // 2:1 ,3:1, 4:1,5 : 3,6:3,7:1 // 选 1,7,4,2,3,5,9 // 然后都选满10个 public class 火彩棒数字 {public static void main(String[] a…

PMP证书如何备考?

每个过了PMP考试的考生:“你是如何学习和准备的”?答案基本分三类: 第一种是“临时抱佛脚”式;第二种是“持续抗战式”;第三种是“疲劳作战式”。 第一种比较符合人性和期望—20世纪三大管理定义之一的帕金斯定律&am…

ESP32引脚入门指南(七):从理论到实践(IIC)

引言 IIC(Inter-Integrated Circuit),又称为IC,是一种简单而高效的多主控器串行通信协议,常用于微控制器和各种外围设备之间的通信。在ESP32系列芯片中,IIC协议被广泛应用于连接各种传感器、存储器和其他支…

揭秘APP广告变现:自建平台收益真的有那么高吗?

在移动应用(APP)的世界里,广告变现是一种常见的盈利模式。开发者或企业通过向用户展示第三方广告来获取收益,这一过程中涉及到的关键角色包括广告主、广告平台以及开发者自己。在众多变现手段中,自建平台进行APP广告变…

Navicat安装配置(注册码)连接MySQL

下载资源 博主给你打包好了安装包,在网盘里,防止你下载到钓鱼软件 快说谢谢博主(然后心甘情愿的点个赞~😊) navicatformysql.zip_免费高速下载|百度网盘-分享无限制 (baidu.com) 安装流程 ①下载好压缩包后并解压 ② …

【2024亚马逊云科技峰会】Amazon Bedrock + Llama3 生成式AI实践

在 4 月 18 日,Meta在官网上公布了旗下最新大模型Llama 3。目前,Llama 3已经开放了80亿(8B)和700亿(70B)两个小参数版本,上下文窗口为8k,据称,通过使用更高质量的训练数据…

激光雷达在工厂散料体积测量中的经济效益分析

随着市场竞争的加剧,企业对于成本控制和效率提升的需求越来越迫切。激光雷达作为一种高效、准确的测量工具,在工厂散料体积测量中发挥着重要作用。本文将对激光雷达在工厂散料体积测量中的经济效益进行分析。 一、减少人工成本 传统的散料体积测量方法…

【DDR 终端稳压器】Sink and Source DDR Termination Regulator [C] S0 S1 S2 S3 S4 S5 6状态

TPS51200A-Q1 器件通过 EN 功能提供 S3 支持。EN引脚可以连接到终端应用中的SLP_S3信号。当EN 高电平(S0 状态)时,REFOUT 和 VO 引脚均导通。当EN 低电平(S3状态)时,VO引脚关断并通过内部放电MOSFET放电时…

趣味软件-吃什么(Eat What)?

🍔🍜🍕 你是否也有这样的日常烦恼? 每天的“世纪难题”——今天吃什么? 🕰️ 饭点到了,脑袋空空,选择困难症大爆发! 👫 和女朋友约会,却不知道她的…

求职网络安全:这个领域的就业机会正在增长

随着大安全时代的到来,网络安全已经从虚拟空间延伸到现实空间。当今网络战愈演愈烈,网络军备赛即将来临。网络空间领域的战争归根到底还是人才的竞争。面对新形势,建立高效的网络安全人才培养体系对中国信息安全产业发展和保证国家安全来讲都至关重要! 目…

PMP证书好考吗?

PMP新考纲还颠覆了自己旧有的五大知识领域,将原来的五大过程组整合成新领域中过程的一部分,提出了新的商业环境、过程、人员三大知识领域。 最关键的是,在新考纲中明确写到: 重要注意事项。通过工作任务分析开展的研究证实&…

科技查新中化工领域查新点如何确立与提炼?案例讲解!

我国化工科技查新工作始于1985年,至今经历了30多年的发展。化工类课题包含化工、炼油、 冶金、能源、轻工、石化、环境、医药、环保和军工等, 具有物质种类繁多、制备工艺复杂等特点。因此,本文结合化工查新项目实例,总结提高化工…

如何通过简单几个技巧,提升文心一言的回复质量

文心一言使用技巧 1 代入角色 例子1 我:500400 -2 AI:计算结果为:500400−2898增加数学老师角色,看一下回复的区别。 我:你是一个一年级的数学老师,请分步骤解释说明 500400-2等于多少 AI:…

XTuner微调LLM:1.8B、多模态和Agent

XTuner微调大语言模型,我们的介绍主要分为以下六个方面。 首先我们讲一下Finetune:分为两种Finetune范式和一条数据的一生来讲解。 为什么要微调?我们的大语言模型为基座模型,要应用到某种特定的场景,需要微调做相应适…

小众行业风口:Q1季度擦窗机器人行业线上市场销售数据分析

今天给大家分享一个2024年的小众行业增长风口——擦窗机器人。 作为家居自动化里的重要一员,擦窗机器人可以简称为擦窗神器,是为了解决大户型家庭的外窗清洁痛点而存在。而目前,擦窗机器人行业正在走向成熟,且市场需求量居高不下…

价格中间加横杠

<span></span>59 <span class"price">177</span>.price{ text-decoration:line-through; }

新都区新都街道沱江社区:共建“微花园”,愿景变实景!

“你看嘛&#xff0c;本来是一个很好的锻炼身体的地方&#xff0c;现在看起来乱糟糟的&#xff0c;大家都很少去运动。”这是一位来自沱江社区自建区居民的心声。 灰扑扑的运动角 杂草丛生闲置空地 …… 本应该是提升居民幸福感的“小角落” 却变成了遭人冷落的“灰色空间…