首页 > 其他分享 >Django Rest_Framework

Django Rest_Framework

时间:2023-03-05 14:46:46浏览次数:45  
标签:name models Rest Django Framework Student import 序列化 verbose

作用:大量缩减编写api接口代码

 思路:

 

  

 安装教程

1.安装django

2.安装djangorestframework

3.django的settings.py中注册'rest_framework'

使用教程:

 

 

 

  • 创建模型类:数据库链接 ,并且建立好数据库模型(Student)
  • from django.db import models
    
    
    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 Mate:
            db_table = 'tb_student'
            verbose_name = '学生'
            verbose_name_plural = verbose_name

     

  • 创建序列化器:创建serializers.py:将数据库模型序列化,创建出序列化器
from rest_framework import serializers  # 导入序列化器基类(2个)
from FRAMEWORK.models import Student


# 序列化基类
# serializers.Serializers
# serializers.ModelSerializers
class StudentModelSerializers(serializers.ModelSerializer):
    # 指定序列化模型
    class Meta:
        model = Student
        fields = "__all__"  # 全部字段
        # fields=['id',"name"]部分字段
  • 编写视图:Student视图:创建ViewSet
  • from rest_framework.viewsets import ModelViewSet
    from FRAMEWORK.models import Student
    from FRAMEWORK.serializers import StudentModelSerializers
    
    
    class StudentModelViewSet(ModelViewSet):
        queryset = Student.objects.all()  # 指明视图集在查询数据时使用的查询集
        serializer_class = StudentModelSerializers  # 指定序列化器或者反序列化器
  • 定义路由:urls.py路由:自动生成路由
  • from django.urls import re_path, path
    from FRAMEWORK.views import Student, Test
    from FRAMEWORK.views.Student import StudentModelViewSet
    from rest_framework.routers import SimpleRouter, DefaultRouter  # 自动生成路由模块(2选1即可)
    
    urlpatterns = [
        # 测试页
        path(r'test', Test.test, name='test'),
    ]
    # 学生api
    """
    router.register("前缀(用于区分api接口)",viewset=指定序列化模型视图,basename=别名)
    """
    router = DefaultRouter()  # 实例化路由生成器
    router.register('stu', viewset=StudentModelViewSet, basename="stu")  # 生成5个路由
    urlpatterns += router.urls
  • 运行测试
  •  

     

标签:name,models,Rest,Django,Framework,Student,import,序列化,verbose
From: https://www.cnblogs.com/Debain/p/17176524.html

相关文章

  • MASA Framework源码解读-01 MASAFacotry工厂设计
    序言闲来无聊,前段时间发现一个.net开源框架:masaframework。经过一些小型项目使用,发现确实挺不错的。然后我又去阅读了整个masaframework源码,特此来记录整个源码阅读的......
  • Django源码-startproject
    Django源码-startprojectDjango的所有命令都位于django/django/core/management/commands/目录下一命令目录django-adminstartprojectproject_name这个命令在源码里......
  • Django源码-测试和调试环境搭建
    Django源码-测试和调试环境搭建一创建虚拟环境mkvirtualenv-ppython3.8.10DjangoSource二安装Djangopipinstalldjango==4.0b1三下载源码方法一gitclon......
  • django终章篇
    从django终章篇1.Cookie和Session1.1基于cookie的登录cookie设置在响应头上,获取在请求头上设置cookie时要先获得一个响应对象(HttpResponse),然后在这个响应对象上......
  • django基础部分
    django基础部分1.django的安装与执行django安装pip3installdjango==1.11.11利用命令行创建django项目django-adminstartproject项目名利用命令行创建app......
  • django进阶
    django进阶一.Django模板系统1.常用语法只需要记两种特殊符号:{{}}和{%%}变量相关的用{{}},逻辑相关的用{%%}。1.1.变量在Django的模板语言中按此语法使用:{{......
  • Django --python manage
    Django--pythonmanage.pycollectstatic应用场景:线上部署(Linux)注意:执行时,需要与manag.py处于同一路径下作用:执行该命令时,将所有STATICFILES_DIRS中的所有文件夹......
  • NET6 使用 Pomelo.EntityFrameworkCore.MySql,无法从“string”转化为Microsoft.Entity
    NET6使用Pomelo.EntityFrameworkCore.MySql,无法从“string”转化为Microsoft.EntityFrameworkCore.ServerVersion。关于net6使用了6.0版本Pomelo.EntityFrameworkCor......
  • How to heal in Wo Long Fallen Dynasty to restore health All In One
    HowtohealinWoLongFallenDynastytorestorehealthAllInOne卧龙:苍天陨落中如何疗伤恢复健康回血治疗卧龙陨落王朝怎么治疗要在卧龙堕落王朝中进行治疗,......
  • Postman主要条件 Installation has failed Failed to install the .NET Framework
      安装postman需要先在装.NETFramework,.NETFramework安装失败,不安装了 直接解压使用1、下载7zip 地址:https://7-zip.org/根据自己的操作系统下载好后,安装压缩......