0008 基于DRF框架开发(01 DRF开发的基本流程)
1 创建模型
由于之前在《004 工程配置》中,已在Applications/Organizations/models中创建了一个UserInfo模型。此处引用这个模型。
from django.db import models from django.contrib.auth.models import AbstractUser from GeneralTools.BaseModel import BaseModel class UserInfo(AbstractUser, BaseModel): openid = models.CharField(max_length=100, verbose_name='openid', null=True, blank=True, help_text='openid') mobile = models.CharField(max_length=20, verbose_name='手机', help_text='手机') # 手机是整个平台的通行证 identity = models.CharField(max_length=30, verbose_name='身份证号', default='', help_text='身份证号') weixin = models.CharField(max_length=50, verbose_name='微信号', null=True, blank=True, help_text='微信号') nickname = models.CharField(max_length=200, verbose_name='用户昵称', null=True, blank=True, help_text='用户昵称') sexchoice = ( (1, '男'), (2, '女'), ) sex = models.IntegerField(choices=sexchoice, verbose_name='性别', null=True, blank=True, help_text='性别') province = models.CharField(max_length=30, verbose_name='省', null=True, blank=True, help_text='省') language = models.CharField(max_length=100, verbose_name='语言', null=True, blank=True, help_text='语言') city = models.CharField(max_length=30, verbose_name='市', null=True, blank=True, help_text='市(地级市)') country = models.CharField(max_length=30, verbose_name='县', null=True, blank=True, help_text='县(县级市)') photo_url = models.CharField(max_length=300, verbose_name='微信头像路径', null=True, blank=True, help_text='微信头像路径') subscribe_scene = models.CharField(max_length=50, verbose_name='用户关注的渠道来源', null=True, blank=True, help_text='用户关注的渠道来源') class Meta: db_table = 'UserInfo' verbose_name_plural = '001 用户信息表'
2 创建序列化器
在Examples/views目录下创建一个文件serializer1.py,先创建一个序列化器。
from rest_framework import serializers from Applications.Organizations.models import UserInfo class UserInfoSerializer1(serializers.ModelSerializer): """ ModelSerializer序列化器,一般与表相关 """ class Meta: model = UserInfo # 指明模型名 fields = '__all__' # 指明使用模型中所有字段
3 编写视图
序列化器文件中,增加一个视图,内容如下:
from rest_framework.viewsets import ModelViewSet class UserInfoViewSet1(ModelViewSet): """ 视图 """ queryset = UserInfo.objects.all() serializer_class = UserInfoSerializer1
4 定义路由
DRF提供了一种自动生成对模型操作的所有查询,新增,删除,修改等路由。使用格式如下:
from django.urls import path from Applications.Examples.views import ExpHome, CoreAPI from rest_framework.routers import DefaultRouter from .views.Serializer1 import UserInfoViewSet1 urlpatterns = [ path('ExpHome/', ExpHome.ExoHome.as_view()), path('CoreAPI/', CoreAPI.CoreAPI.as_view()), path('LoginHome/', CoreAPI.LoginHome.as_view()), ] router = DefaultRouter() # 可以处理视图的路由器 router.register('UserInfo1', UserInfoViewSet1) # 向路由器中注册视图集 urlpatterns += router.urls # 将路由器中的所以路由信息追到到django的路由列表中
5 运行测试
运行工程,可以看到以下效果,UserInfo1共生成list、create、read、update、partial_update、delete六个接口,几乎包含了数据库操作的增加、删除、修改、查询等方法。而且,这些接口都直接可以连接数据库进行测试。
0008 基于DRF框架开发(01 DRF开发的基本流程)的更多相关文章
- Java基于ssm框架的restful应用开发
Java基于ssm框架的restful应用开发 好几年都没写过java的应用了,这里记录下使用java ssm框架.jwt如何进行rest应用开发,文中会涉及到全局异常拦截处理.jwt校验.token ...
- 基于Spring框架的Web应用开发笔记 - Outline
Motivation 最近的工作涉及Web框架搭建,在了解公司原有采用框架基础上对Web开发技术栈做了一次升级,在次做记录. Audience J2EE Web Application Develop ...
- 基于“MVC”框架集设计模式,开发用户管理系统!
MVC----(Model View Controller)设计模型: M:表示业务数据和业务规则.包括DAO(beans).DBHelper(DBHelper),用于封装数据库连接,业务数据库处理. ...
- 基于SpringBoot框架企业级应用系统开发全面实战
Eclipse 安装spring-tool-suite教程,并创建一个新的springboot项目 使用SpringBoot构建项目,加载SSM整合的applicationContext.xml的注解 ...
- 基于MVC框架的JavaWeb网站开发demo项目(JSP+Servlet+JavaBean)
1.环境配置 Windows10+Eclipse2020+jdk8+Tomcat9+MySQL8+Navicat10 2.需求分析 ①用户登录注册注销(查找.增加) ②显示用户列表(查找) ③显示用户 ...
- 微信小程序的开发——01小程序的执行流程是怎样的?
作者:叶小钗 转载至:https://www.cnblogs.com/yexiaochai/p/9346043.html 我们这边最近一直在做基础服务,这一切都是为了完善技术体系,这里对于前端来说便是 ...
- Windows下React Native开发01 -- Android开发环境搭建
1.安装jdk 推荐将JDK的bin目录加入系统PATH环境变量(自己百度下怎么配置). 2.安装SDK 直接安装 Android Studio 推荐从AndroidDevTools下载.(也可以直 ...
- DRF框架之序列化器初体验
首先,我们需要明白序列化和反序列化的过程指的是什么. 序列化操作:将模型数据 ---> 字典数据 --->JSON数据(响应JSON数据的操作) 反序列化操作:将JSON数据 ---> ...
- 第二章、drf框架 - 请求模块 | 渲染模块 解析模块 | 异常模块 | 响应模块 (详细版)
目录 drf框架 - 请求模块 | 渲染模块 解析模块 | 异常模块 | 响应模块 Postman接口工具 drf框架 注册rest_framework drf框架风格 drf请求生命周期 请求模块 ...
- python 全栈开发,Day95(RESTful API介绍,基于Django实现RESTful API,DRF 序列化)
昨日内容回顾 1. rest framework serializer(序列化)的简单使用 QuerySet([ obj, obj, obj]) --> JSON格式数据 0. 安装和导入: p ...
随机推荐
- MongoDB 4.2新特性:分布式事务、字段级加密、通配符索引、物化视图
MongoDB 4.2已经发布,我们来看看它增加了哪些新特性?分布式事务?数据库加密?通配符索引? 在2019年MongoDB World大会上,CTO Eliot Horowitz介绍了MongoD ...
- vue 入门 ------简单购物车功能实现(全选,数量加减,价格加减)
简易购物车功能(无任何布局 主要是功能) 数量的加减 商品的总价钱 全选与全不选 删除(全选.价格 受影响) <script src="https://cdn.jsdelivr.net ...
- php基础编程-php连接mysql数据库-mysqli的简单使用
很多php小白在学习完php基础后,或多或少要接触到数据库的使用.而mysql数据库是你最好的选择,本文就mysql来为大家介绍php如何连接到数据库. PHP MySQLi = PHP MySQL ...
- bat脚本 定时删除备份的文件
删除 D:\yswbak 目录下rar类型 6天前的 文件 @echo off forfiles /p D:\yswbak /m *.rar /d - /c "cmd /c del @pat ...
- [Python]pip 国内源
临时使用方法 pip install -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com celery END
- 大数相乘----C语言
/* 大数相乘: 因为是大数,乘积肯定超出了能定义的范围,因此考虑用数组存储,定义三个数组,分别存储乘数,被乘数和积. 规则与平常手算一样,从个位开始分别与被乘数的每一位相乘,但是有一点不同的是:我们 ...
- table-cell设置宽高、居中
table-cell默认宽高由内容决定 <style type="text/css" rel="stylesheet"> .content { co ...
- 容器监控工具WeaveScope
最近一段时间整了一些docker容器,弄了一些基于docker的微服务通信,弄好一套服务系统之后,对于服务的性能,基础数据的监控就显的很重要, 不然就是两眼一抹黑了,要不就是维护成本很高,这些都不符合 ...
- Android5.0和Android6.0适配
gradle配置项 compileSdkVersion 用哪个 Android SDK 版本编译你的应用.因此我们强烈推荐总是使用最新的 SDK 进行编译.在现有代码上使用新的编译检查可以获得很多好处 ...
- WebStorm新建JS文件、CSS文件时自动生成文件注释
WebStorm 是jetbrains公司旗下一款优秀的前端开发工具.随着现在大型项目模块越来越多,参与人员也越来越多,实际项目中经常需要明确文件用途和文件的归属,所以创建文件时添加文件注释是一种必要 ...