zoukankan      html  css  js  c++  java
  • 测试平台系列(5)项目管理页面(2)

    项目管理界面接口相关

    项目管理页面前端页面已经写好了,现在开始写接口,首先是数据库的设计

    项目管理表需要的字段有哪些?
    项目名称,描述,接口数,用例数,创建时间,更新时间。目前暂且这些。

    Django框架中,数据库的内容,需要在model.py文件中写入
    这里使用的数据库是django自导的sqlite。

    如果使用其他数据库,可在setting中修改配置。
    image

    执行两个命令
    python manage.py makemigrations
    python manage.py migrate

    数据库中就会生成表。

    创建项目接口

    开始写逻辑相关内容,在view.py中
    获取到数据,直接存储到表中,返回成功就ok了。
    image

    在url.py写入路由配置
    image

    用postman工具请求下接口,查看可以调试成功
    image

    再查看下数据中,有记录生成,就完成了
    image

    获取项目数据接口

    获取数据的话,使用get方法,可以直接写在project类下面
    获取数据的格式必须是json的形式,这里用到的rest_framework中的 Serialiezer处理
    image

    postman 换成get方法请求下可以看到返回的数据
    image

    ok了,新增项目和获取项目数据接口完成。

    知识点

    Django的model操作,创建数据表相关关键字
    rest_framework 中的 APIView,Response,Serialiezer

    源码

    view.py
    from django.shortcuts import render
    
    # Create your views here.
    
    from rest_framework.response import Response
    from rest_framework.views import APIView
    from glory import models
    from logzero import logger
    from glory import Serializer
    class project(APIView):
        def post(self,req,*args,**kwargs):
            """创建项目"""
            ret = {}
            try:
                name = req.data.get("name")
                describe = req.data.get("describe")
                models.project.objects.create(name=name,describe=describe)
                ret["code"] = 0
                ret["msg"] = "创建成功"
            except Exception as e:
                ret["code"] = 1
                ret["msg"] = "创建失败:{}".format(e)
            return Response(ret)
    
        def get(self,req,*args,**kwargs):
            ret={}
            try:
                project_list = models.project.objects.all()
                project_list = Serializer.projectSerializer(project_list,many=True)
                ret["code"] = 0
                ret["data"] = project_list.data
                ret["msg"] = "获取数据成功"
            except Exception as e:
                ret["code"] = 1
                ret["data"] = []
                ret["msg"] = "获取失败:{}".format(e)
            return Response(ret)
    
    
    
    
    
    Serializers.py
    from rest_framework import serializers
    from glory import models
    
    class projectSerializer(serializers.ModelSerializer):
        class Meta:
            model = models.project
            fields="__all__"
    
    model.py
    from django.db import models
    
    # Create your models here.
    
    class project(models.Model):
        id = models.IntegerField(primary_key=True)
        name = models.CharField(max_length=300,verbose_name="项目名称")
        describe = models.CharField(max_length=500,verbose_name="描述")
        jk_num = models.IntegerField(verbose_name="接口数量",default=0)
        case_num = models.IntegerField(verbose_name="用例数量",default=0)
        updatetime = models.DateTimeField(auto_now=True,verbose_name="更新时间")
        createtime = models.DateTimeField(auto_now_add=True,verbose_name="创建时间")
    
        class Meta:
            db_table = "project"
    
    
    
    url.py
    from django.contrib import admin
    from django.urls import path
    from glory.views import *
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path("project",project.as_view())
    ]
    
    
  • 相关阅读:
    149. Max Points on a Line(js)
    148. Sort List(js)
    147. Insertion Sort List(js)
    146. LRU Cache(js)
    145. Binary Tree Postorder Traversal(js)
    144. Binary Tree Preorder Traversal(js)
    143. Reorder List(js)
    142. Linked List Cycle II(js)
    141. Linked List Cycle(js)
    140. Word Break II(js)
  • 原文地址:https://www.cnblogs.com/TestingShare/p/15645505.html
Copyright © 2011-2022 走看看