• 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、创建模型操作类

    1. class Student(models.Model):
    2.     # 模型字段
    3.     name = models.CharField(max_length=100,verbose_name="姓名")
    4.     sex = models.BooleanField(default=1,verbose_name="性别")
    5.     age = models.IntegerField(verbose_name="年龄")
    6.     class_null = models.CharField(max_length=5,verbose_name="班级编号")
    7.     description = models.TextField(max_length=1000,verbose_name="个性签名")
    8.     class Meta:
    9.         db_table="tb_student"
    10.         verbose_name = "学生"
    11.         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的账号密码

    1.     DATABASES = {
    2.    # 'default': {
    3.    #     'ENGINE': 'django.db.backends.sqlite3',
    4.    #     'NAME': BASE_DIR / 'db.sqlite3',
    5.    # }
    6.     'default':{
    7.         'ENGINE':'django.db.backends.mysql',
    8.         'NAME': "students",
    9.         "HOST": "127.0.0.1",
    10.         "PORT": 3306,
    11.         "USER": "root",
    12.         "PASSWORD": "123456"
    13.     }
    14. }

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

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

    1.     class StudentModelSerializer(serializers.ModelSerializer):
    2.             class Meta:
    3.                     model = Student
    4.                     fields = "__all__"

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

    1.     from django.shortcuts import render
    2.     from rest_framework.viewsets import ModelViewSet
    3.     from .models import Student
    4.     from .serializers import StudentModelSerializer
    5.     # Create your views here.
    6.     class StudentViewSet(ModelViewSet):
    7.             queryset = Student.objects.all()
    8.             serializer_class = StudentModelSerializer


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


        新建urls.py 添加路由信息
        

    1.     from . import views
    2.     from rest_framework.routers import DefaultRouter
    3.     #路由列表
    4.     urlpatterns = []
    5.     router = DefaultRouter() #可以处理视图的路由
    6.     router.register('student',views.StudentViewSet) #像路由器中注册视图集
    7.     urlpatterns += router.urls  #将路由器中的所有路由追加到django的路由列表中
    8.     把students子应用中的路由文件加载到总路由中
    9.     
    10.     from django.contrib import admin
    11.     from django.conf.urls import url
    12.     from django.urls import path
    13.     from django.urls import include
    14.     from . import  views
    15.     urlpatterns = [
    16.             #path('admin/', admin.site.urls),
    17.             #url(r'^$',views.hello),
    18.             path('',views.hello), #http://127.0.0.1:8000/hello/
    19.             path('print',views.print),  #http://127.0.0.1:8000/print
    20.             path('templates',views.templates),
    21.             path("stu/",include("app01.urls")),
    22.     ]

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

  • 相关阅读:
    在关系型数据库中储存树形结构
    HFSS端口介绍1---集总端口
    leetcode:LCP 41. 黑白翻转棋【bfs + 翻转棋模拟】
    关于你所不知道的双机互备,确定不了解一下?
    容器技术 -- 简单了解 Kubernetes 的对象
    Windows安装Elasticsearch8.x保姆级教程
    Bumptop——3D桌面一键get
    TypeScript泛型
    Kotlin 协程 - 协程调度器 CoroutineDispatcher
    【每周研报复现】AI量化特征工程之alphalens:一套用于分析 alpha 因子的通用工具
  • 原文地址:https://blog.csdn.net/vivigege/article/details/134259197