Django使用rest_framework写出API
在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正常。
补充:如果报csrf的错,则在请求的headers部分加入键:X-CSRFToken ,值是cookie中的csrftoken值,再次发送请求。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
Django+RestFramework API接口及接口文档并返回json数据操作
系统:ubuntu18.04 x64 GitHub:https://github.com/xingjidemimi/DjangoAPI.git 安装 pip install django==2.1.5 pip install djangorestframework # rest api pip install coreapi pygments markdown # 自动化接口文档 API示例 创建django项目 django-admin startproject DjangoAPI 创建应用
-
django restframework serializer 增加自定义字段操作
在使用django restframework serializer 序列化在django中定义的model时,有时候我们需要额外在serializer中增加一些model中没有的字段.有两种方法实现这个目的. 假设现在有一个Animal模型,其中有name, type, country字段,country为外键.我们在序列化Animal时,需要额外增加外键country的area信息. 方法一修改数据库,利用model 这里就不多解释,主要来说第二种,不修改django的model,直接使用S
-
Django REST framework 单元测试实例解析
这篇文章主要介绍了Django REST framework 单元测试实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 环境 Win10 Python3.7 Django2.2 项目 参照官网 快速开始 写了一个 demo 测试 参照官网 测试 和 Django 的测试差不多 创建 tutorial/tests/tests.py import json from django.test import TestCase from rest_
-
浅谈django不使用restframework自定义接口与使用的区别
django可以使用restframework快速开发接口,返回前端所需要的json数据,但是有时候利用restframework开发的接口并不能满足所有的需求,这时候就需要自己手动开发接口,也就是将需要用到的某些对象转化为需要使用的json数据,今天记录一下django自己定义接口的一种方法与思路 假设我们定义三张数据表,分别是问卷,问题,选项.一张问卷包含不同的问题,一个问题可以设置不同的选项,自定义的接口可以实现查看所有或单个问卷的标题与id,可以查看所有或单个问题的所属问卷,问题标题,问
-
Django rest framework jwt的使用方法详解
一简介 JWT 是一个开放标准(RFC 7519),它定义了一种用于简洁,自包含的用于通信双方之间以 JSON 对象的形式安全传递信息的方法.该信息可以被验证和信任,因为它是数字签名的.JWTS可以使用秘密(使用HMAC算法)或公钥/私钥对使用RSA或ECDSA来签名. JWT的组成部分: header Header是由下面这个格式的Json通过Base64编码(编码不是加密,是可以通过反编码的方式获取到这个原来的Json,所以JWT中存放的一般是不敏感的信息)生成的字符串,Header中存放的
-
django rest framework serializers序列化实例
serializers是将复杂的数据结构变成json或者xml这个格式的 serializers有以下几个作用: - 将queryset与model实例等进行序列化,转化成json格式,返回给用户(api接口). - 将post与patch/put的上来的数据进行验证. - 对post与patch/put数据进行处理. 实现序列化二个类:Serializer与ModelSerializer 比较 ModelSerializer(Serializer) 即 ModelSerializer继承了Se
-
Django rest framework分页接口实现原理解析
如果没有设置分页,django-rest-framework 会将所有资源类表序列化后返回,如果资源很多,就会对网站性能造成影响.为此,我们来给博客文章列表 API 添加分页功能. django-rest-framework 为分页功能提供了多个辅助类,常用的有: PageNumberPagination 将资源分为第 1 页.第 2 页...第 n 页,使用页码号请求分页结果. LimitOffsetPagination 通过 limit 和 offset 两个参数来控制请求的资源.例如通过发
-
Django restframework 框架认证、权限、限流用法示例
本文实例讲述了Django restframework 框架认证.权限.限流用法.分享给大家供大家参考,具体如下: 概述 Django Rest Framework 是一个强大且灵活的工具包,使用Django REST Framework可以在Django的基础上迅速实现API,用以构建Web API. 认证Authentication 可以在配置文件中配置全局默认的认证方案 REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': ( 'rest
-
django rest framework serializer返回时间自动格式化方法
django的时间是 models # models create_time = models.DateTimeField(blank=True, auto_now_add=True, null=True) 这是一个DateTimeField 我想返回的时候,直接格式化好 那就在 xxxSerializer(serializers.ModelSerializer): create_time = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S
-
Django使用rest_framework写出API
在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',
-
Django一小时写出账号密码管理系统
1.环境搭建 需安装: python3.6 Pycharm专业版 django 2.2.6 mysqlclient pip install django==2.2.6 pip install mysqlclient 2.生成django项目 django-admin startproject yourproject 3.修改数据库引擎为mysql并要数据库中创建对应名字的数据库 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.my
-
Django使用AJAX调用自己写的API接口的方法
在这个例子中,我们将使用Django编写饿了么高校外卖商家查询API接口,并且使用AJAX技术来实现API接口的使用,包括使用ajax get方法加载更多数据,使用ajax方法来更新.修改.新增.删除数据.利用API可以做到前后端分离,为开发web应用提供了便利. 安装rest framework 首先使用Pycharm新建一个Django项目,并且使用virtualenv或者pipenv虚拟环境 创建成功会自动安装Django2.1和所需依赖,restframework框架需要自己手动安装 /
-
使用Vue Composition API写出清晰、可扩展的表单实现
表单是前端开发中最棘手的部分之一,您可能会在其中发现很多混乱的代码. 基于组件的框架,如 Vue.js,在提高前端代码的可扩展性方面做了很多工作,但是表单的问题仍然存在. 在本教程中,将向您展示新的 Vue Composition API(即将加入 Vue 3 中)如何使表单代码更清晰.更具可扩展性. 为什么表单代码经常很烂 像 Vue 这种基于组件的框架的关键设计模式是组件组合. 这种模式将应用程序的特性抽象为独立的.单一用途的组件,这些组件通信使用 props 和事件的方式. 然而,在此模式
-
Django REST Swagger实现指定api参数
为什么要指定swagger的api参数 api的参数有多种类型: query 参数,如 /users?role=admin path 参数,如 /users/{id} header 参数,如 X-MyHeader: Value body 参数,描述POST,PUT,PATCH请求的body form 参数,描述 Content-Type of application/x-www-form-urlencoded 和 multipart/form-data 的请求报文body的参数 swagger指
-
写出高质量软件的75条体会
如何用正确的方法写出高质量软件的75条体会 1. 你们的项目组使用源代码管理工具了么? MVM:应该用.VSS.CVS.PVCS.ClearCase.CCC/Harvest.FireFly都可以.我的选择是VSS. 2. 你们的项目组使用缺陷管理系统了么? MVM:应该用.ClearQuest太复杂,我的推荐是BugZilla. 3. 你们的测试组还在用Word写测试用例么? MVM:不要用Word写测试用例(Test Case).应该用一个专门的系统,可以是Test Manager,也可以是自
-
django 微信网页授权认证api的步骤详解
微信网页授权认证 根据微信官方文档,网页授权需要四个步骤, - 用户同意授权-获取code - 通过code 获取网页授权access_token - 通过code 获取网页授权access_token - 刷新token - 拉去用户信息scope为snsapi_userinfo -检验授权凭证 access_token是否有效 1 授权 url="https://open.weixin.qq.com/connect/oauth2/authorize?appid={0}&redirec
-
用 Django 开发一个 Python Web API的方法步骤
Django 是 Python 编程语言驱动的一个开源模型-视图-控制器(MVC)风格的 Web 应用程序框架.它是Python API开发中最受欢迎的名称之一,自2005年成立以来,其知名度迅速提升. Django由Django软件基金会(Django Software Foundation)维护,并获得了社区的大力支持,在全球拥有11,600多个成员.在Stack Overflow上,Django大约有191,000个带标签的问题.Spotify,YouTube和Instagram等网站都依
-
如何写出优雅的JS 代码
变量 使用有意义和可发音的变量名 // 不好的写法 const yyyymmdstr = moment().format("YYYY/MM/DD"); // 好的写法 const currentDate = moment().format("YYYY/MM/DD"); 对同一类型的变量使用相同的词汇 // 不好的写法 getUserInfo(); getClientData(); getCustomerRecord(); // 好的写法 getUser(); 使用可
-
如何写出一个惊艳面试官的JavaScript深拷贝
目录 导读 深拷贝和浅拷贝的定义 乞丐版 基础版本 考虑数组 循环引用 性能优化 其他数据类型 合理的判断引用类型 获取数据类型 可继续遍历的类型 不可继续遍历的类型 克隆函数 最后 参考 小结 导读 最近经常看到很多JavaScript手写代码的文章总结,里面提供了很多JavaScript Api的手写实现. 里面的题目实现大多类似,而且说实话很多代码在我看来是非常简陋的,如果我作为面试官,看到这样的代码,在我心里是不会合格的,本篇文章我拿最简单的深拷贝来讲一讲. 看本文之前先问自己三个问题:
随机推荐
- Java中Vector与ArrayList的区别详解
- EXECUTE IMMEDIATE用法小结
- javascript 汉字与拼音转换
- 详解angular中通过$location获取路径(参数)的写法
- Java中的接口和抽象类用法实例详解
- oracle中文乱码的解决方法
- javascript 系统文件夹文件操作及参数介绍
- C++实现汉诺塔算法经典实例
- Android基于ListView实现类似QQ空间的滚动翻页与滚动加载效果
- Vue.js双向绑定操作技巧(初级入门)
- js中的push和join方法使用介绍
- 用vbs实现的连连看在线游戏
- PHP+MySQL之Insert Into数据插入用法分析
- php实现的mongodb操作类
- 轻松实现Linux下的互联网过滤功能
- centos6.5中安装mongodb简明总结
- jQuery联动日历的实例解析
- WordPress中的shortcode短代码功能使用详解
- Bootstrap基本样式学习笔记之图片(6)
- Linux 软件看门狗 watchdog使用介绍