测试平台系列(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())
]

原文地址:https://www.cnblogs.com/TestingShare/p/15645505.html