django restframwork学习笔记:安装和配置
django restframwork学习笔记:安装和配置
Riv3n前后端分离
什么是前后端分离
程序角度:
1个django程序,接受请求 + 处理 + html模版 + 用户返回
2个程序:
前端:vue.js / react.js / angular.js
后端:django + django restframework
专业度角度来讲:
前端:专门写前端代码 + 部署 + 版本管理 + ajax请求获取
后端:API
APP或微信小程序:
前端:APP或者微信小程序
后端:API
什么是drf?作用是什么?
drf让我们以后写后端API接口时更方便
安装drf
1 | pip install django |
初步编写API
drf本质上是django的一个App,所以安装完以后要先注册才能使用
1 | INSTALLED_APPS = [ |
路由
1 | path('login/', views.login) |
视图
1 | from rest_framework.response import Response |
FBV和CBV
fbv就是基于函数的视图,cbv是基于类的视图,类似于面向过程和面向对象的感觉。
两者的区别其实只是一种现象,透过django的源代码我们能看出,其实二者实现的本质是一样的
我们后面开发一般都以cbv为主
CBV
CBV -> drf -> dispatch
请求对象和参数
1 | django的request对象 |
创建项目
pycharm创建普通python项目,然后安装django,之后创建django项目
(因为笔者学习的时候要用低版本的django,实际上不需要指定django版本的话直接用pycharm创建django项目也可以,会默认创建新的版本)
创建django项目
创建一个专门写接口的app
因为是命令行安装的django,所以还要手动配置下server
然后安装下drf
1 | pip install djangorestframework |
然后注册一下drf
项目净化
django自带了一些app和组件,这里不需要,从settings里注视掉
测试
我们用个简单的代码测试下drf是不是弄好了
视图函数
1 | from rest_framework.views import APIView |
路由
1 | from django.urls import path |
这里要注意的是,因为drf源码里会给分配一个匿名身份,所以这里我们要给它赋值None,不然会报错。
注意这里的语法,由于drf嵌套了一层,所以不能直接像修改django的设置一样写,要这样写代表修改drf设置
1 | REST_FRAMEWORK = { |
然后我们运行django,访问就可以看到如下界面,就没问题了
1 | http://localhost:8000/user |