项目管理界面接口相关
项目管理页面前端页面已经写好了,现在开始写接口,首先是数据库的设计
项目管理表需要的字段有哪些?
项目名称,描述,接口数,用例数,创建时间,更新时间。目前暂且这些。
Django框架中,数据库的内容,需要在model.py文件中写入
这里使用的数据库是django自导的sqlite。
如果使用其他数据库,可在setting中修改配置。
执行两个命令
python manage.py makemigrations
python manage.py migrate
数据库中就会生成表。
创建项目接口
开始写逻辑相关内容,在view.py中
获取到数据,直接存储到表中,返回成功就ok了。
在url.py写入路由配置
用postman工具请求下接口,查看可以调试成功
再查看下数据中,有记录生成,就完成了
获取项目数据接口
获取数据的话,使用get方法,可以直接写在project类下面
获取数据的格式必须是json的形式,这里用到的rest_framework中的 Serialiezer处理
postman 换成get方法请求下可以看到返回的数据
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())
]