Django开发使用DRF框架之创建纯净版框架步骤

news2024/11/24 7:52:19

使用Django开发时,遇到前后端分离的项目,需要创建一个纯净版的Django框架,在使用restframework框架时,有些Django自带的功能或者说是APP用不到,那需要怎么设置呢,需要解决哪些问题,请见下面的详细分解。方法来源武沛齐老师的DRF源码分析课程。

一、环境

Django:3.2

Python:3.8

编译工具:pycharm

二、纯净系统创建步骤

django restframework框架 是在django的基础上又给我们提供了很多方便的功能,让我们可以更便捷基于django开发restful API。

注意:drf支持cbv和fbv,只不过基于drf在进行api开发时,一般都是使用cbv的形式。

1、在pycharm中点击file菜单-New Fileproject,按照下图设置项目本地路径和evn虚拟环境路径。设置完成后,点击右下角的Creat,在新的窗口打开。注意,不要选择Django项目,选择puro python项目,纯净的Python项目。

2、 打开pycharm中下面的Terminal,通过命令安装Django,版本号是3.2。

命令:pip install django==3.2

3、 创建项目,名字是xiabibi,创建命令:django-admin startproject xiabibi . ,注意最后面有个空格和点,表示在根目录下面创建。创建完成后,在目录出现了xiabibi的项目。

4、 创建APP,名字是Api,创建命令:django-admin startapp Api 。创建完成后,在目录出现了Api的APP。

5、在setting.py中设置,首先注释掉红色框中的部分,因为用不到。

 

6、至此,纯净的Django项目就可以了,这一步就要安装 restframework框架了,命令:pip install djangorestframework 。

7、 restframework框架,本质是是一个APP,想要使用就先要去setting.py中注册。

8、项目测试,分别是urls.py中编写路由,在views.py中编写基于DRF的CBV模式的视图。

 

9、配置项目的Django server。点击pycharm菜单栏的Run,再点击Run,点击Edit Configurations,如果没有添加过环境,这里点击添加App New。点击图1的加号时选择Django server,图2是自己设置server的名字,建议和项目名字一致,然后点击图3的fix。

10、然后安装下图的顺序操作,其中2是配置项目路径,选择自己项目的路径就可以了,3是配置项目settings.py的路径,最后点击OK。

 

11、启动项目,点击红色框中的项目默认地址。

12、在浏览器地址栏中输入之前编写的路由: http://127.0.0.1:8000/user/      

发现报错如下,提示 django.contrib.contenttypes.models.ContentType未注册,我们在前面的步骤中将这个注释掉了,那现在是不是要在settings.py中去把它恢复注册就可以了呢?答案是否。

原理:DRF在页面展示的时候,用到了用户信息,这里主要是用的匿名用户信息,是要寻找当前登录用户的信息,找不到就报错。 

 

13、解决方法,在settings.py中加入如下配置项:

REST_FRAMEWORK = {
    "UNAUTHENTICATED_USER": None,
}

 

14、浏览器重新访问,成功。

 

 

 

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

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

相关文章

《研发效能(DevOps)工程师》课程简介(三)丨IDCF

在研发效能领域中,【开发与交付】的学习重点在于掌握高效的开发工具和框架,了解敏捷开发方法,掌握持续集成与持续交付技术,以及如何保证应用程序的安全性和合规性等方面。 由国家工业和信息化部教育与考试中心颁发的职业技术证书…

【虹科干货】Redis企业版给DevOps团队带来了哪些价值?

内存太贵?现代化转型太难?还在花费精力维护数据库基础设施?Redis Enterprise 在开源版的基础上增加了一整套包含管理、自动化、弹性以及安全等方面的功能,使其更适合企业级的应用场景。那么,Redis Enterprise 如何能成…

防近视台灯有必要买吗?分享能够预防近视的专业护眼台灯

对于护眼台灯能够预防近视这件事,很多家长认为这是一种智商税的。其实不然,护眼台灯之所以能够预防近视,当然不是说只要使用了这种台灯,就真的不会近视了。首先我们要明白,台灯对于孩子而言是夜晚阅读书写时必不可少的…

nacos1.1.4 持久化数据库升级到 Mysql8.0.34

1 环境要求 CentOS 7、MySQL 8.0.34 2 安装步骤 2.1 docker拉取mysql 8.0.34命令 这样写时拉取最新版本,可以直接写到对应的版本 docker pull mysql:8.0docker pull mysql:8.0.342.2 docker images确认 2.3 安装运行mysql8.0容器 docker run -p 3307:3306 --n…

API文档自动生成

API文档自动生成 背景smart-doc配置效果图 背景 对于API接口文档自动生成,可能大家,最新想到的是用swagger,但是有以下问题: 对代码侵入太强版本升级,并不兼容不能生成各种类型的文档 所以,今天给大家推荐…

Java算法:二分查找

一、 二分查找注意 前提是数组必须是有序的,否则无法正常工作。如果数组不是有序的,需要先对数组进行排序,然后才能使用二分查找算法。 二、二分查找高效算法 二分查找也称为折半查找,是一种在有序数组中查找目标元素的算法。它的…

华纳云:centos系统中怎么查看cpu信息?

在CentOS系统中,我们可以使用一些命令来查看CPU的详细信息。下面介绍几个常用的命令: 1. lscpu lscpu命令可以显示CPU的架构、型号、核心数、线程数、频率等信息。 # lscpu 执行以上命令后,会输出类似以下内容: 2. cat /proc/…

【JAVA学习笔记】54 - 集合 - Set类、HashSet类、TreeSet类(难点)

项目代码 https://github.com/yinhai1114/Java_Learning_Code/tree/main/IDEA_Chapter14/src/com/yinhai/set_ Set类 一、基本介绍 1.无序(添加和取出的顺序不一致) ,没有索引[后面演示] 2.不允许重复元素,所以最多包含一个null 3.JDK API中Set接口的实现类有: …

jvs-logic逻辑引擎功能新增:逻辑凭证、自定义权限控制等等

新增: 1.新增逻辑复制功能;主要用于数据的同步和复制 2.逻辑新增权限设置功能; 每个逻辑可以设置不同的权限,逻辑页的功能权限配置默认是全部赋权给应用授权的相关人员,也可以按照自定义配置,如图所示,选…

rhcsa-数据流和重定向

cp cp 选项 源文件 目标文件 ****-a 复制目录的所有信息(保留文件信息) -p保留原文件的权限,所有者以及时间戳的信息 -r复制目录及所有子目录的所有文件 例: cp -p 复制的源文件 复制的目标路径 mv 作用&#xff…

ChatGLM2-6B下载与部署

0 写在前面 我们首先来看一下ChatGLM2-6B模型的requirements: protobuf transformers4.30.2 cpm_kernels torch>2.0 gradio mdtex2html sentencepiece accelerate sse-starlette streamlit>1.24.0可以看到,要求torch>2.0,这就产生了一个问题&…

解决uniapp的video标签和transition属性使用时出现错位的问题

template:三个视频都每个占满屏幕,点击按钮滚动最外层bgBox元素, style: 想要加上动画过渡效果: 这是显示第一个视频: 点按钮向上滑动滚动到第二个视频时: 视频错位了 ,因为视频消失又出现的时候…

一款支持星座、干支、生肖、节气、节日、彭祖百忌、每日宜忌等超卷的日历工具库

大家好,我是凌览。 日常GitHub划水发现一款超级6的日历工具库lunar,它支持阳历、阴历、佛历和道历,甚至还玩上了星座、干支、生肖、节气、节日、彭祖百忌、每日宜忌、吉神宜趋、凶煞宜忌、吉神方位、冲煞、纳音、星宿、八字、五行、十神、建…

day58--动态规划16

583. 两个字符串的删除操作 72. 编辑距离 编辑距离总结篇 第一题:两个字符串的删除操作 给定两个单词 word1 和 word2,找到使得 word1 和 word2 相同所需的最小步数,每步可以删除任意一个字符串中的一个字符。 示例: 输入: &qu…

单元测试学习

回顾测试理论基础 单元测试基础知识 什么是单元测试 单元测试流程、测试计划 测试策略设计、实现 单元测试 - 执行 HTML 报告生成 1 软件测试分类 目标 回顾测试理论知识-测试分类 1. 测 试分类 代码可见度上-划分分类: 1. 黑盒测试 2. 灰盒测试 3. …

Mac允许任何来源的的安装包进行安装

首先打开终端,开启“任何来源”,执行如下命令: sudo spctl --master-disable 然后回车,继续输入密码(密码输入时是不可见的),然后回车。 接着打开【系统偏好设置】,选择【安全性与…

梦百合上榜2023鼎革奖数字化转型先锋榜

10月26日,第六届“鼎革奖”数字化转型先锋榜单揭晓,梦百合家居凭借数字化生产的卓越成果——SAP管理平台及供应链项目,入选2023【鼎革奖】数字化转型先锋榜年度供应链转型典范,梦百合家居COO 崔慧明同步入选2023【鼎革奖】数字化转型先锋榜年度首席运营官。 据了解,「鼎革奖」数…

用CHAT编写代码

今天小编带大家来试试用CHAT 写代码 问:本题要求编写程序,计算出从n个不同元素中取出m个元素(m≤n)的组合数。用c语言 CHAT 回复:在C语言中,我们可以通过事先定义一个函数用于计算阶乘,然后利用…

在如今的大环境下你是否选择测试岗?——打造敏捷测试团队

摘要:敏捷转型大潮汹涌而来,各大技术公司均被卷入其中,在管理层的重视下,效能提升成为测试团队日常工作的口头禅。但是我们也看到,敏捷转型的效果参差不齐,真正深入理解敏捷要义的骨干员工数量很少&#xf…

Maven Repository使用

1.Maven Repository网站 https://mvnrepository.com/https://mvnrepository.com/ 2.查询需要的依赖 3.参考例子 <!-- https://mvnrepository.com/artifact/org.freeswitch.esl.client/org.freeswitch.esl.client --> <dependency> <groupId>org.freesw…