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 ...
随机推荐
- 3D点云配准算法简述
蝶恋花·槛菊愁烟兰泣露 槛菊愁烟兰泣露,罗幕轻寒,燕子双飞去. 明月不谙离恨苦,斜光到晓穿朱户. 昨夜西风凋碧树,独上高楼,望尽天涯路. 欲寄彩笺兼尺素.山长水阔知何处? --晏殊 导读: 3D点云 ...
- 微信支付v3版本NET 图片上传API
最近在写特约服务商进件的由于微信官方没有DEMO,导致踩了很多坑,特把自己经验分享给大家. 注意几点: 1.上传图片签名不是把所有body内容都进行签名,只需签名计算的请求主体为meta的json串: ...
- 一键安装apache-2.4.38脚本
[root@lamp scripts]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) [root@lamp scripts ...
- [Python-memcached]Python操作memcached
安装python-memchached插件 pip install python-memcached Collecting python-memcached Downloading python_me ...
- asp.net core 3.x 授权默认流程
一.前言 接上一篇<asp.net core 3.x 授权中的概念>,本篇看看asp.net core默认授权的流程.从两个方面来看整个授权系统是怎么运行的:启动阶段的配置.请求阶段中间件 ...
- 【转载】linux操作系统与应用程序的main函数
来源:https://blog.csdn.net/h542723151/article/details/52154871 这几天一直在纠结: main函数是程序的入口,一个程序启动后,经过bootlo ...
- rhel6.5安装网络yum源过程
**redhat的yum在线更新是收费的,如果没有注册的话不能使用,如果要使用,需将redhat的yum卸载后,重启安装其他yum源,再配置其他源.** 本文包括配置本地源及第三方源.第三方源包括:网 ...
- RPC(简单实现)
笔者之前仅看过RPC这个单词,完全没有了解过,不想终于还是碰上了.起因:这边想提高并发量而去看kafka(最后折中使用了redis),其中kafka需要安装ZooKeeper,而ZooKeeper又与 ...
- Linux系统WEB服务之Nginx基础入门
一.Nginxi简介 Nginx是什么?它是一个开源.高性能的WEB服务器软件和代理服务器软件,由俄罗斯人Igor Sysoev 开发实现.它的功能主要分三类,第一是它作为一个WEB服务软件使用:第二 ...
- 代理模式-jdk动态代理
IDB package com.bjpowernode.proxy; /** * 代理类和目标类都必须使用同一个接口. */ public interface IDB { int insert(); ...