DRF 学习


一、安装DRF
    1、pip install djangorestframework -i https://pypi.douban.com/simple
    2、pip install pymysql -i https://pypi.douban.com/simple
二、创建Django项目
    1、django-admin startproject drfdemo
三、添加rest_framework应用
    1、INSTALLED_APPS = [
                ...
                'rest_framework',
            ]
四、创建模型操作类
1、创建模型操作类

class Student(models.Model):# 模型字段name = models.CharField(max_length=100,verbose_name="姓名")sex = models.BooleanField(default=1,verbose_name="性别")age = models.IntegerField(verbose_name="年龄")class_null = models.CharField(max_length=5,verbose_name="班级编号")description = models.TextField(max_length=1000,verbose_name="个性签名")class Meta:db_table="tb_student"verbose_name = "学生"verbose_name_plural = verbose_name


2、创建数据库 create database students charset=utf8;
3、执行数据迁移 把app01增加到INSTALL_APPS中
4、在__init__.py中增加pymysql做为数据库驱动
    import pymysql
    pymysql.version_info = (1, 4, 13, "final", 0)
    pymysql.install_as_MySQLdb()
5、在setting.py配置文件中设置mysql的账号密码

    DATABASES = {# 'default': {#     'ENGINE': 'django.db.backends.sqlite3',#     'NAME': BASE_DIR / 'db.sqlite3',# }'default':{'ENGINE':'django.db.backends.mysql','NAME': "students","HOST": "127.0.0.1","PORT": 3306,"USER": "root","PASSWORD": "123456"}
}

6、终端命令下执行数据迁移
    python manage.py migrate #创建表结构
    python manage.py makemigrations app01#让Django知道模型有一些变更    注意是app01 应用名称,不是项目名称
    python manage.py migrate app01  #创建表结构    注意是app01 应用名称,不是项目名称

7、在app01中新建serializers.py用于保存应用的序列化器。
    # 创建序列化器类,回头会在试图中被调用 创建一个StudentModelSerializer用于序列化与反序列化。

    class StudentModelSerializer(serializers.ModelSerializer):class Meta:model = Studentfields = "__all__"

8、编写视图类
    在app01应用的views.py中创建视图StudentViewSet,这是一个视图集合。

    from django.shortcuts import renderfrom rest_framework.viewsets import ModelViewSetfrom .models import Studentfrom .serializers import StudentModelSerializer# Create your views here.class StudentViewSet(ModelViewSet):queryset = Student.objects.all()serializer_class = StudentModelSerializer


    #queryset 指明该视图集在查询数据时使用的查询集
    #serializer_class 指明该视图在进行序列化或反序列化时使用的序列化器9、定义路由


    新建urls.py 添加路由信息
    

    from . import viewsfrom rest_framework.routers import DefaultRouter#路由列表urlpatterns = []router = DefaultRouter() #可以处理视图的路由router.register('student',views.StudentViewSet) #像路由器中注册视图集urlpatterns += router.urls  #将路由器中的所有路由追加到django的路由列表中把students子应用中的路由文件加载到总路由中from django.contrib import adminfrom django.conf.urls import urlfrom django.urls import pathfrom django.urls import includefrom . import  viewsurlpatterns = [#path('admin/', admin.site.urls),#url(r'^$',views.hello),path('',views.hello), #http://127.0.0.1:8000/hello/path('print',views.print),  #http://127.0.0.1:8000/printpath('templates',views.templates),path("stu/",include("app01.urls")),]

    点击链接127.0.0.1:8000/stu/students获取所有数据
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/135356.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

centos7.9 postgresql 16.0 源码安装部署

postgresql 16.0 源码安装部署 环境准备 系统主机名IP地址centos7.9postgres192.168.200.56 软件准备 postgresql-16.0.tar.gz https://ftp.postgresql.org/pub/source/v16.0/postgresql-16.0.tar.gz依赖安装 yum -y install systemd-devel readline readline-devel zlib-devel…

2023辽宁省数学建模B题数据驱动的水下导航适配区分类预测完整原创论文分享(python求解)

大家好呀,从发布赛题一直到现在,总算完成了辽宁省数学建模B题完整的成品论文。 本论文可以保证原创,保证高质量。绝不是随便引用一大堆模型和代码复制粘贴进来完全没有应用糊弄人的垃圾半成品论文。 B用Python+SPSSPRO求解&…

RabbitMQ 消息中间件

消息中间件 1、简介 消息中间件也可以称消息队列,是指用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息队列模型,可以在分布式环境下扩展进程的通信。 当下主流的消息中间…

Redisson实现延迟队列

延迟队列是指在队列中存储带有过期时间的数据,在过期时间到达时自动从队列中移除。 延时队列的使用场景: 订单超过15分钟未支付自动取消推送数据至第三方平台,如果失败重新入队推送,推送间隔时间随着失败次数增加而扩大。分布式情…

linux 查看并统计进程、线程数量: awk 分组统计

1,统计进程数量 #1, 统计所有进程数量 test2:/root # ps -ef |wc -l 444#2, 统计root进程数量 test2:/root # ps -U root -u root -f |wc -l 184#3, 统计非root进程数量 test2:/root # ps -U root -u root -f -N |wc -l 261#4,验证数量是否一致&…

小程序提交表单之后,清除表单form

构造表单 <form bindsubmit"bindFormSubmit"> <view class"main"><textarea name"textarea" value"{{content}}"></textarea> <button form-type"submit" type"primary" > 提交 &…

PHP将pdf转为图片后用OCR识别

1.确保apt包是最新 sudo apt update 2.使用apt安装 sudo apt install tesseract-ocr 3.检查版本 tesseract --version 4.pdf转成图片&#xff0c;这边需要安装imagick插件 $pdf new Imagick(); $pdf->setResolution(150, 150); $pdf->readImage(..$temp); $pdf->…

如何提高40%的Docker构建时间

1. 背景 在产品开发中构建docker镜像,随着时间的推移,会变得越来越大,构建时间也越来越长。我的目标是构建时间不超过 5 分钟。 2. 遵循Dockerfile的最佳实践 我们首先确保Dockerfile文件遵循Docker官方的最佳实践,具体做法有: 尽量使用官方的基础镜像,Docker推荐使用…

【腾讯云 TDSQL-C Serverless 产品体验】以TDSQL-C Mysql Serverless 作为数据中心爬取豆瓣图书数据

【腾讯云 TDSQL-C Serverless 产品体验】以TDSQL-C Mysql Serverless 作为数据中心爬取豆瓣图书数据 文章目录 【腾讯云 TDSQL-C Serverless 产品体验】以TDSQL-C Mysql Serverless 作为数据中心爬取豆瓣图书数据背景TDSQL-C Serverless Mysql介绍以TDSQL-C Mysql Serverless 作…

el-select 选中的值与展示的不一样

背景&#xff1a; 查询列表&#xff0c;用户名和邮箱混合展示&#xff0c;选中后只展示邮箱前缀&#xff0c;并高亮&#xff0c;保存时传整个信息&#xff0c;回显时展示前缀&#xff1b; <el-selectv-model"labelForm.notifyUser"clearablemultipleremotefilter…

记录两个Excel导出出现的问题

问题一&#xff1a;导出数据时&#xff0c;这行代码返回null&#xff0c;导致导出excel失败&#xff1b; Workbook workbook ExcelExportUtil.exportExcel(params, map);解决&#xff1a;排查出来&#xff0c;是因为版本问题&#xff0c;autopoi版本是1.2.1&#xff1b; 升级…

Nginx 实现负载均衡

目录 一&#xff1a;负载均衡介绍 二、 负载均衡具备的功能 1.提高服务器性能 2.提高系统可用性 3.提高系统的可伸缩性 4.实现流量均衡 三、示例配置&#xff0c;如何使用nginx实现负载均衡 四、负载均衡策略配置 1.基于轮询的负载均衡&#xff08;默认&#…

时间序列预测:深度学习、机器学习、融合模型、创新模型实战案例(附代码+数据集+原理介绍)

本文介绍->给大家推荐一下我的时间序列预测专栏&#xff0c;本专栏平均质量分98分&#xff0c;而且本专栏目前免费阅读&#xff0c;其中涉及机器学习、深度学习、融合模型、个人创新模型、数据分析等一系列有关时间序列的专栏&#xff0c;其中的实战的案例不仅有简单的模型类…

Vue中的 配置项 setup

setup 是 Vue3 中的一个全新的配置项&#xff0c;值为一个函数。 setup 是所有 Composition API&#xff08;组合式API&#xff09;的入口&#xff0c;是 Vue3 语法的基础。 组件中所用到的数据、方法、计算属性等&#xff0c;都需要配置在 setup 中。 setup 会在 beforeCre…

从业务到软件架构——软件建模

一、问题 1.架构到底是什么&#xff1f;架构和业务之间到底什么关系&#xff1f; 2.好的架构的设计出发点是什么&#xff1f;好的架构应该是什么样的&#xff1f; 作为一个计算机领域的词汇&#xff0c;架构的定义是&#xff1a;有关软件整体结构与组件的抽象描述&#xff0c…

C# OpenCvSharp 去除文字中的线条

效果 中间过程效果 项目 代码 using OpenCvSharp; using System; using System.Drawing; using System.Windows.Forms; using static System.Net.Mime.MediaTypeNames;namespace OpenCvSharp_Demo {public partial class frmMain : Form{public frmMain(){InitializeComponent…

禅道系统迁移笔记

禅道是一个可免费使用的开源项目管理系统。 最近执行了一个禅道系统服务器迁移的任务。做笔记备查。 迁移基本情况&#xff1a; 将现有禅道系统转移到一个新服务器内。原服务器为CentOS 8&#xff0c;新服务器为ubuntu 20.04 LTS。 禅道版本18.2. 迁移基本思路如下&#…

Linux开发板安装Ubuntu标准桌面环境(或其他桌面环境)

我们每入手一款开发板&#xff0c;一般配套的固件系统都会默认运行相应厂商定制的桌面环境&#xff08;在一些桌面环境上定制的&#xff09;。这个时候有些同学可能不喜欢厂商定制的桌面系统想要安装其他桌面系统比如我们虚拟机上常用的Ubuntu标准桌面系统&#xff08;不建议因…

毫米波雷达技术的医疗创新:开启无创检测与监测的新时代

随着科技的不断进步&#xff0c;毫米波雷达技术正日益成为医疗领域的一项引人注目的创新。其无创性质、高分辨率和多功能性为医学诊断和监测带来了新的可能性。本文将深入探讨毫米波雷达技术在医疗创新中的应用&#xff0c;着眼于无创检测与监测领域的突破性发展。 1. 毫米波雷…

SpringBoot之Swagger

文章目录 前言一、Swagger简介二、SpringBoot集成Swagger三、配置Swagger四、配置扫描接口五、配置Swagger开关六、配置API分组七、实体配置八、常用注解 前言 作为后端开放人员&#xff0c;最烦的事就是自己写接口文档和别人没有写接口文档&#xff0c;不管是前端还是后端开发…