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