Django使用rest_framework写出API


Posted in Python onMay 21, 2020

在Django中用rest_framework写API,写了一个用户注册的API,并测试成功。

本人环境:Django==2.2.1;djangorestframework==3.11.0

1、安装djangorestframework

(1)终端中输入命令:

pip install djangorestframework

(2)在settings里面的INSTALL_APP里面,添加rest_framework应用:

INSTALL_APP = [
  ...
  'rest_framework',
]

2、新建django项目和应用:

django-admin startproject magic_chat

django-admin startapp chat_user #(进入magic_chat目录下)

python manage.py migrate # 数据写入

3、在settings里面的INSTALL_APP里面,配置应用:

INSTALL_APP = [
  ...
'rest_framework',
'chat_user.apps.ChatUserConfig',
]

4、在views.py中写API代码:

from django.contrib.auth.models
import User
from rest_framework
import status
from rest_framework.response
import Response
from rest_framework.views
import APIView
class Register(APIView):
	def post(self, request):
	""
"
注册
	""
"
username = request.data.get('username')
password = request.data.get('password')
user = User.objects.create_user(
	username = username, password =
	password)
user.save()
context = {
	"status": status.HTTP_200_OK,
	"msg": "用户注册成功"
}
return Response(context)

5、配置项目的urls.py

urlpatterns = [
  path('admin/', admin.site.urls),
  path('', include('chat_user.urls')),
]

6、配置应用的urls.py

from django.urls import path
from . import views
urlpatterns = [
  path('register/', views.Register.as_view()),
  ]

7、启动服务:

python manage.py runserver

8、验证API可调用:

打开Postman软件,输入网址http://127.0.0.1:8000/register/,输入参数,选择post方式,send发送后成功返回"status": 200,"msg": "用户注册成功",说明API正常。

Django使用rest_framework写出API

补充:如果报csrf的错,则在请求的headers部分加入键:X-CSRFToken ,值是cookie中的csrftoken值,再次发送请求。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python开发WebService系列教程之REST,web.py,eurasia,Django
Jun 30 Python
Python类的多重继承问题深入分析
Nov 09 Python
用Python操作字符串之rindex()方法的使用
May 19 Python
Python中使用支持向量机(SVM)算法
Dec 26 Python
Python实现的计算器功能示例
Apr 26 Python
Python ATM功能实现代码实例
Mar 19 Python
浅谈tensorflow中dataset.shuffle和dataset.batch dataset.repeat注意点
Jun 08 Python
python 通过exifread读取照片信息
Dec 24 Python
如何使用Python提取Chrome浏览器保存的密码
Jun 09 Python
浅析Django接口版本控制
Jun 26 Python
python 管理系统实现mysql交互的示例代码
Dec 06 Python
Python实现Excel文件的合并(以新冠疫情数据为例)
Mar 20 Python
使用keras根据层名称来初始化网络
May 21 #Python
关于Keras Dense层整理
May 21 #Python
Django如何使用redis作为缓存
May 21 #Python
如何打包Python Web项目实现免安装一键启动的方法
May 21 #Python
keras之权重初始化方式
May 21 #Python
Python3 ID3决策树判断申请贷款是否成功的实现代码
May 21 #Python
Python使用os.listdir和os.walk获取文件路径
May 21 #Python
You might like
在PHP中养成7个面向对象的好习惯
2010/01/28 PHP
php中in_array函数用法分析
2014/11/15 PHP
php array_values 返回数组的值实例详解
2016/11/17 PHP
jQuery UI的Dialog无法提交问题的解决方法
2011/01/11 Javascript
jquery上传插件fineuploader上传文件使用方法(jquery图片上传插件)
2013/12/05 Javascript
浅析tr的隐藏和显示问题
2014/03/05 Javascript
JS实现窗口加载时模拟鼠标移动的方法
2015/06/03 Javascript
javascript日期格式化方法小结
2015/12/17 Javascript
jQuery ajax提交Form表单实例(附demo源码)
2016/04/06 Javascript
jQuery四种选择器使用及示例
2016/06/05 Javascript
JQuery组件基于Bootstrap的DropDownList(完整版)
2016/07/05 Javascript
简单实现bootstrap导航效果
2017/02/07 Javascript
js/jquery控制页面动态加载数据 滑动滚动条自动加载事件的方法
2017/02/08 Javascript
Vue.js中的图片引用路径的方式
2017/07/28 Javascript
nodejs简单读写excel内容的方法示例
2018/03/16 NodeJs
简述vue状态管理模式之vuex
2018/08/29 Javascript
详解vue文件中使用echarts.js的两种方式
2018/10/18 Javascript
基于JavaScript实现贪吃蛇游戏
2020/03/16 Javascript
python通过imaplib模块读取gmail里邮件的方法
2015/05/08 Python
Python遍历指定文件及文件夹的方法
2015/05/09 Python
Python的Django框架中设置日期和字段可选的方法
2015/07/17 Python
python3实现多线程聊天室
2018/12/12 Python
Python GUI学习之登录系统界面篇
2019/08/21 Python
Python循环实现n的全排列功能
2019/09/16 Python
pytorch实现线性拟合方式
2020/01/15 Python
python连接打印机实现打印文档、图片、pdf文件等功能
2020/02/07 Python
浅谈SciPy中的optimize.minimize实现受限优化问题
2020/02/29 Python
详解HTML5 LocalStorage 本地存储
2016/12/23 HTML / CSS
施华洛世奇德国官网:SWAROVSKI德国
2017/02/01 全球购物
Booking.com英国官网:全球酒店在线预订网站
2018/04/21 全球购物
英国乐购杂货:Tesco Groceries
2018/11/29 全球购物
投标单位介绍信
2014/01/09 职场文书
学生宿舍管理制度
2014/01/30 职场文书
药品开票员岗位职责
2015/04/15 职场文书
检讨书范文
2019/04/16 职场文书
MySQL的全局锁和表级锁的具体使用
2021/08/23 MySQL