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项目。

Django开发使用DRF框架之创建纯净版框架步骤_第1张图片

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

命令:pip install django==3.2

Django开发使用DRF框架之创建纯净版框架步骤_第2张图片

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

Django开发使用DRF框架之创建纯净版框架步骤_第3张图片

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

Django开发使用DRF框架之创建纯净版框架步骤_第4张图片

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

Django开发使用DRF框架之创建纯净版框架步骤_第5张图片

Django开发使用DRF框架之创建纯净版框架步骤_第6张图片 

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

Django开发使用DRF框架之创建纯净版框架步骤_第7张图片

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

Django开发使用DRF框架之创建纯净版框架步骤_第8张图片

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

Django开发使用DRF框架之创建纯净版框架步骤_第9张图片 

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

Django开发使用DRF框架之创建纯净版框架步骤_第10张图片

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

Django开发使用DRF框架之创建纯净版框架步骤_第11张图片 

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

Django开发使用DRF框架之创建纯净版框架步骤_第12张图片

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

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

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

Django开发使用DRF框架之创建纯净版框架步骤_第13张图片 

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

REST_FRAMEWORK = {
    "UNAUTHENTICATED_USER": None,
}

Django开发使用DRF框架之创建纯净版框架步骤_第14张图片 

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

Django开发使用DRF框架之创建纯净版框架步骤_第15张图片 

 

 

你可能感兴趣的:(django,python,后端)