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

使用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、浏览器重新访问,成功。

 

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

第三届iEnglish全国ETP大赛决赛即将启动

如今,寓教于乐的学习方式越来越受到家长和孩子的欢迎,“玩中学”成为一种既能培养兴趣又有助于孩子成长的学习趋势。 以“玩转英语,用iEnglish”为活动主题的第三届全国ETP大赛即将于本周五(11月3日)迎来总决赛的抽签仪式。据主办方iEnglish智能英语学习解决方案相关负责人称,…

【设计模式】第10节:结构型模式之“组合模式”

一、简介 组合模式:将一组对象组织成树形结构,将单个对象和组合对象都看做树中的节点,以统一处理逻辑,并且它利用树形结构的特点,递归地处理每个子树,依次简化代码实现。使用组合模式的前提在于&#xff0…

Scan2BIM实战:从3D扫描到BIM模型生成

最近,我被问过很多次这个问题,所以我想我会尽力传达答案。 我应该指出,以下是概述,而不是非常详细的分步过程。 有很多因素会决定这项工作; 详细程度、扫描设备、点云配准软件和 CAD 软件等。 由于不知道你可能拥有或感…

分享一下微信小程序里怎么开店

如何在微信小程序中成功开店:从选品到运营的全方位指南 一、引言 随着微信小程序的日益普及,越来越多的人开始尝试在微信小程序中开设自己的店铺。微信小程序具有便捷、易用、即用即走等特点,使得开店门槛大大降低。本文将详细介绍如何在微…

中考倒计时7个月复习攻略:名师支招,为“长跑”积蓄能量

今天是2023年11月2日,距离2024年中考还有7个月多一点的时间。其实据六分成长了解,很多学校到了初三(九年级)基本上都是奔着中考考试复习的,这一学年基本上是长跑、拉力赛,拼的不只是智力,还有体…

记一次大数据事故@用了很久的虚拟机环境突然不能联网了

记一次大数据事故用了很久的虚拟机环境突然不能联网了 背景 今天打开自己电脑上的虚拟机环境打算练习一下flink,结果发现vmware里虚拟机能正常开机,也能正常进图os,但是就是不能ping通主机,主机也不能ping通虚拟机 探查 1、…

猫耳 Android 播放框架开发实践

概述 猫耳FM是中国最大的 95 后声音内容分享平台,是B站重要平台之一,深度合作国内顶级声优工作室,打造了数百部精品广播剧,全站播放总量超过百亿次。 MEPlayer 是猫耳 Android 技术团队研发的一款适用于音视频、直播、特效播放等…

处理大数据的基础架构,OLTP和OLAP的区别,数据库与Hadoop、Spark、Hive和Flink大数据技术

处理大数据的基础架构,OLTP和OLAP的区别,数据库与Hadoop、Spark、Hive和Flink大数据技术 2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开 测开的话&am…

数据链路层中存在的报文ip,arp,rarp

IP数据报 ARP请求/应答报 RARP请求/应答报 IP数据报 这里的目的地址和源地址是MAC地址。 这个被称为 MAC 地址,是一个网卡的物理地址,用十六进制,6 个 byte 表示。 MAC 地址是一个很容易让人误解的地址。因为 MAC 地址号称全球唯一&…

如何选择合适的千兆或万兆光模块

随着数字化转型的加快和云计算、物联网等技术的迅猛发展,对高带宽和高速度通信的需求将持续增长。光模块作为实现高速光纤通信的关键组件,在数据中心、通信网络、云服务等领域得到更广泛的应用。对于用户来说,如何选择适合自己应用的光模块是…

Vue elemen ui 移除上次校验与部分清除上次校验

场景: 可以切换类型,下面的输入框参数也会随着改变。 如果不清除上次的校验就会出现,之前的大陆企业的校验还会出现在香港企业的校验中 方法: watch:{ruleForm.paymentSubjectType:{ 通过监听表单的类型来调用 clearValidate方…

LV.12 D13 UART实验 学习笔记

一、UART帧格式详解 UART Universal Asynchronous Receiver Transmitter 即 通用异步收发器,是一种通用的串行、异步通信总线 该总线有两条数据线,可以实现全双工的发送和接收,在嵌入式系统中常用于主机与辅助设备之间的通信。 通…

API文档自动生成

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

Python Django 之模板继承详解(extends)

文章目录 1 概述1.1 目的1.2 标签:block、extends1.3 目录结构 2 templates 目录2.1 base.html:父页面2.2 login.html:子页面 3 其它代码3.1 settings.py3.2 views.py3.3 urls.py 1 概述 1.1 目的 模板继承 和 类继承 的目的是一样的&#…

【已解决】PPT不能转换成PDF文档怎么办?

PPT可以转换成PDF文档,只需要点击PPT菜单页面中的【文件】选项,再点击【导出】即可转换,如果转换时发现【导出】选项不可选,无法完成转换怎么办?以下3种方法可以试试! 出现上面这种情况,我们可以…

HWebkit库的程序示例

HWebkit库的爬虫程序,并且能够使用指定的服务器。以下是代码的每一行的中文解释: import HWebkit import Network.HTTP.Client import Network.HTTP.Client.TLS import Data.Text.Encoding ​ -- 创建服务器的连接,使用的端口和主机是 proxy…

计算机服务器中了mallad勒索病毒怎么办,勒索病毒解密恢复

警惕,警惕,企业主多警惕,新型网络勒索病毒出来了,近期,云天数据恢复中心,接到了某企业的求助,企业的计算机服务器中了mallad后缀勒索病毒,导致企业计算机系统瘫痪,无法正…

Vue3.0 reactive与ref :VCA模式

简介 Vue3 最大的一个变动应该就是推出了 CompositionAPI,可以说它受ReactHook 启发而来;它我们编写逻辑更灵活,便于提取公共逻辑,代码的复用率得到了提高,也不用再使用 mixin 担心命名冲突的问题。 ref 与 reactive…

yolov7模型轻量化改进之MobileOne骨干替换

本文在之前文章yolov7分割训练的基础上进行改进: https://blog.csdn.net/qq_41920323/article/details/129464115?spm=1001.2014.3001.5502 具体GitHub工程下载,环境安装配置,数据准备等,请借鉴之前的文章,此处只介绍如何进行改进。 MobileOne地址:https://github.com…

通付盾Web3专题 | 智能账户:数字时代基础单元

2008年10月31日,中本聪(Satoshi Nakamoto)在P2P foundation 网站发布比特币白皮书《比特币:一种点对点的电子现金系统》。转眼距比特币白皮书发布已过去15年。2009年1月比特币网络正式推出,当时每个比特币的价格仅为0.…