国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Django實現(xiàn)接口自動化平臺(十一)項目模塊Projects序列化器及視圖【持續(xù)更新中】

這篇具有很好參考價值的文章主要介紹了Django實現(xiàn)接口自動化平臺(十一)項目模塊Projects序列化器及視圖【持續(xù)更新中】。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

相關文章:

Django實現(xiàn)接口自動化平臺(十)自定義action names【持續(xù)更新中】_做測試的喵醬的博客-CSDN博客

本章是項目的一個分解,查看本章內容時,要結合整體項目代碼來看:

python django vue httprunner 實現(xiàn)接口自動化平臺(最終版)_python+vue自動化測試平臺_做測試的喵醬的博客-CSDN博客

官方文檔:

Serializers - Django REST framework

一、Projects 相關接口

項目數(shù)據(jù)的基本增刪改查

請求方式 URI 對應action 實現(xiàn)功能
GET /projects/ .list() 查詢project列表
POST /projects/ .create() 創(chuàng)建一條數(shù)據(jù)
GET /projects/{id}/ .retrieve() 檢索一條project的詳細數(shù)據(jù)
PUT /projects/{id}/ update() 更新一條數(shù)據(jù)中的全部字段
PATCH /projects/{id}/ .partial_update() 更新一條數(shù)據(jù)中的部分字段
DELETE /projects/{id}/ .destroy() 刪除一條數(shù)據(jù)
GET /projects/names/ .names() 自定義 查詢project列表

本章節(jié),只是單純的實現(xiàn)了項目接口的增刪改查,后續(xù)擴展功能在其他章節(jié)

1.1 項目列表?查詢peoject列表?.list()

GET /projects/ .list() 查詢project列表

Django實現(xiàn)接口自動化平臺(十一)項目模塊Projects序列化器及視圖【持續(xù)更新中】,Django實現(xiàn)測試平臺,Django/flask,Python,django,自動化,python

?1.2??創(chuàng)建一條project .create()

POST /projects/ .create() 創(chuàng)建一條數(shù)據(jù)

Django實現(xiàn)接口自動化平臺(十一)項目模塊Projects序列化器及視圖【持續(xù)更新中】,Django實現(xiàn)測試平臺,Django/flask,Python,django,自動化,python

?1.3 查看詳情/更新項目?retrieve()??update()?.partial_update()

查看詳情與編輯?

  • 查看詳情 .retrieve()?
  • 更新?update()? partial_update()

Django實現(xiàn)接口自動化平臺(十一)項目模塊Projects序列化器及視圖【持續(xù)更新中】,Django實現(xiàn)測試平臺,Django/flask,Python,django,自動化,python

1.4? 項目列表 自定義action names?

GET /projects/names/ .names() 自定義 查詢project列表

應用場景:

在創(chuàng)建接口時,需要調用項目列表。設置該接口歸屬為哪個項目。

這里的項目列表,只展示項目的id 與 name,其他字段都不展示的。

names()?列表 與 list() 列表,對應的序列化器是不一樣的。

Django實現(xiàn)接口自動化平臺(十一)項目模塊Projects序列化器及視圖【持續(xù)更新中】,Django實現(xiàn)測試平臺,Django/flask,Python,django,自動化,python?

?二、Projects 數(shù)據(jù)庫模型model

projects項目表的字段

from django.db import models

from utils.base_models import BaseModel


class Projects(BaseModel):
    id = models.AutoField(verbose_name='id主鍵', primary_key=True, help_text='id主鍵')
    name = models.CharField('項目名稱', max_length=200, unique=True, help_text='項目名稱')
    leader = models.CharField('負責人', max_length=50, help_text='項目負責人')
    tester = models.CharField('測試人員', max_length=50, help_text='項目測試人員')
    programmer = models.CharField('開發(fā)人員', max_length=50, help_text='開發(fā)人員')
    publish_app = models.CharField('發(fā)布應用', max_length=100, help_text='發(fā)布應用')
    desc = models.CharField('簡要描述', max_length=200, null=True, blank=True, default='', help_text='簡要描述')
    update_datetime = models.DateTimeField(auto_now=True, null=True, blank=True, help_text="修改時間",
                                           verbose_name="修改時間")
   create_datetime = models.DateTimeField(auto_now_add=True, null=True, blank=True, help_text="創(chuàng)建時間",
                                           verbose_name="創(chuàng)建時間")

    class Meta:
        db_table = 'tb_projects'
        verbose_name = '項目信息'
        verbose_name_plural = verbose_name
        ordering = ('id',)

    def __str__(self):
        return self.name

id、項目名稱、負責人、測試人員、開發(fā)人員、應用名稱、描述、修改時間、創(chuàng)建時間。

詳解:

1、表名:db_table = 'tb_projects'

2、數(shù)據(jù)排序:ordering = ('id',)

三、序列化器serializer

# -*- coding: utf-8 -*-

from rest_framework import serializers
from .models import Projects



class ProjectModelSerializer(serializers.ModelSerializer):

    class Meta:
        model = Projects
        exclude = ('update_datetime', )
        extra_kwargs = {
            "create_datetime": {
                "read_only": True,
                "format": "%Y年%m月%d日 %H:%M:%S"
            }
        }

# names action的序列化器
class ProjectsNamesModelSerailizer(serializers.ModelSerializer):

    class Meta:
        model = Projects
        fields = ('id', 'name')

一共兩個序列化器

1、正常的序列化器,包含全部的字段

2、 names action 對應的序列化器,只展示id 與name

四、視圖views.py

import logging

from rest_framework import filters

from rest_framework import viewsets

from rest_framework import permissions

from .models import Projects
from . import serializers
from utils.mixins import NamesMixin


logger = logging.getLogger('backend')


class ProjectViewSet(NamesMixin, viewsets.ModelViewSet):
    """
    list:
    獲取項目列表數(shù)據(jù)

    retrieve:
    獲取項目詳情數(shù)據(jù)

    update:
    更新項目信息

    names:
    獲取項目名稱

    """
    queryset = Projects.objects.all()
    serializer_class = serializers.ProjectModelSerializer

    filter_backends = [filters.SearchFilter, filters.OrderingFilter]
    search_fields = ['=name', '=leader', '=id']
    ordering_fields = ['id', 'name', 'leader']

    permission_classes = [permissions.IsAuthenticated]



    def get_serializer_class(self):
        """
        a.可以重寫父類的get_serializer_class方法,用于為不同的action提供不一樣的序列化器類
        b.在視圖集對象中可以使用action屬性獲取當前訪問的action方法名稱
        :return:
        """
        if self.action == 'names':
            return serializers.ProjectsNamesModelSerailizer
        else:
            return super().get_serializer_class()

?1、names接口,由NamesMixin 提供

2、基礎的增刪改查,由viewsets.ModelViewSet 提供

3、get_serializer_class 重寫的,?ModelViewSet->GenericViewSet->GenericAPIView 類下的方法。

    def get_serializer_class(self):
        """
        a.可以重寫父類的get_serializer_class方法,用于為不同的action提供不一樣的序列化器類
        b.在視圖集對象中可以使用action屬性獲取當前訪問的action方法名稱
        :return:
        """
        if self.action == 'names':
            return serializers.ProjectsNamesModelSerailizer
        else:
            return super().get_serializer_class()

重寫后,當action為names時,返回序列化器為serializers.ProjectsNamesModelSerailizer

get_serializer_class 源碼:

Django實現(xiàn)接口自動化平臺(十一)項目模塊Projects序列化器及視圖【持續(xù)更新中】,Django實現(xiàn)測試平臺,Django/flask,Python,django,自動化,python

?文章來源地址http://www.zghlxwxcb.cn/news/detail-571585.html

到了這里,關于Django實現(xiàn)接口自動化平臺(十一)項目模塊Projects序列化器及視圖【持續(xù)更新中】的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Django實現(xiàn)接口自動化平臺(八)測試報告reports序列化器及視圖【持續(xù)更新中】

    上一章: Django實現(xiàn)接口自動化平臺(七)數(shù)據(jù)庫設計_做測試的喵醬的博客-CSDN博客 下一章: 官方文檔: Serializers - Django REST framework apps/reports/serializers.py 1.1.1 代碼解釋: 1、? exclude: You can set the? exclude ?attribute to a list of fields to be excluded from the serializer. For example: 2、read_o

    2024年02月09日
    瀏覽(19)
  • Django實現(xiàn)接口自動化平臺(十二)自定義函數(shù)模塊DebugTalks 序列化器及視圖【持續(xù)更新中】

    Django實現(xiàn)接口自動化平臺(十二)自定義函數(shù)模塊DebugTalks 序列化器及視圖【持續(xù)更新中】

    上一章: Django實現(xiàn)接口自動化平臺(十一)項目模塊Projects序列化器及視圖【持續(xù)更新中】_做測試的喵醬的博客-CSDN博客 本章是項目的一個分解,查看本章內容時,要結合整體項目代碼來看: python django vue httprunner 實現(xiàn)接口自動化平臺(最終版)_python+vue自動化測試平臺_做測

    2024年02月16日
    瀏覽(22)
  • Django實現(xiàn)接口自動化平臺(十四)測試用例模塊Testcases序列化器及視圖【持續(xù)更新中】

    Django實現(xiàn)接口自動化平臺(十四)測試用例模塊Testcases序列化器及視圖【持續(xù)更新中】

    相關文章: Django實現(xiàn)接口自動化平臺(十三)接口模塊Interfaces序列化器及視圖【持續(xù)更新中】_做測試的喵醬的博客-CSDN博客 本章是項目的一個分解,查看本章內容時,要結合整體項目代碼來看: python django vue httprunner 實現(xiàn)接口自動化平臺(最終版)_python+vue自動化測試平臺

    2024年02月17日
    瀏覽(23)
  • 基于 HttpRunner + Django + Vue + Element UI 的接口自動化測試平臺

    基于 HttpRunner + Django + Vue + Element UI 的接口自動化測試平臺

    https://github.com/tahitimoon/LunarLink https://lunar-link-docs.fun 基于HttpRunner + Django + Vue + Element UI 的接口自動化測試平臺,生產可用。 此外,非常感謝 花菜。沒有 AnotherFasterRunner 就不會有 LunarLink ?? ?? Django ?? Django Rest framework ?? Vue.js ?? Element UI ?? django-celery-beat(定時任務) ??

    2024年04月11日
    瀏覽(23)
  • Django+vue自動化測試平臺(7)-- 使用Selenium+vue實現(xiàn)WebUI自動化及結果展示

    Django+vue自動化測試平臺(7)-- 使用Selenium+vue實現(xiàn)WebUI自動化及結果展示

    Selenium是一個用于Web應用程序測試的工具。Selenium測試直接運行在瀏覽器中,就像真正的用戶在操作一樣。支持的瀏覽器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera,Edge等。這個工具的主要功能包括:測試與瀏覽器的兼容性——測試應用程序看是否能夠很好得

    2024年02月14日
    瀏覽(27)
  • Vue實現(xiàn)自動化平臺(四)--接口管理頁面的實現(xiàn)

    Vue實現(xiàn)自動化平臺(四)--接口管理頁面的實現(xiàn)

    上一章: Vue實現(xiàn)自動化平臺(三)_做測試的喵醬的博客-CSDN博客 github地址:https://github.com/18713341733/vuemiaotest? 這個目前只是用來練手的,項目還沒成型。等以后我寫完了,再更新一下項目鏈接。? ? 這個頁面樣式,與我們上一章 項目管理的頁面樣式展示基本一樣。 所以樣式

    2023年04月16日
    瀏覽(18)
  • 搭建Django+pyhon+vue自動化測試平臺

    搭建Django+pyhon+vue自動化測試平臺

    Django安裝 使用管理員身份運行pycharm使用local ???檢查django是否安裝成功 ? ? 創(chuàng)建項目 cd 切換至創(chuàng)建的項目中啟動django項目 啟動項目 點擊連接跳轉至瀏覽器 ?更改django為中文settings文件---LANGUAGE_CODE Vue安裝 安裝cnpm,代替npm指令,速度快 ? ? ? ?安裝vue腳手架 ? ? ? ? 切換至

    2024年02月14日
    瀏覽(18)
  • Django(6)-django項目自動化測試

    Django(6)-django項目自動化測試

    Django 應用的測試應該寫在應用的 tests.py 文件里。測試系統(tǒng)會自動的在所有以 tests 開頭的文件里尋找并執(zhí)行測試代碼。 我們的 polls 應用現(xiàn)在有一個小 bug 需要被修復:我們的要求是如果 Question 是在一天之內發(fā)布的, Question.was_published_recently() 方法將會返回 True ,然而現(xiàn)在這個

    2024年02月11日
    瀏覽(17)
  • 接口自動化測試平臺

    接口自動化測試平臺

    下載了大神的EasyTest項目demo修改了下https://testerhome.com/topics/12648 原地址。也有看另一位大神的HttpRunnerManagerhttps://github.com/HttpRunner/HttpRunnerManager 原地址,由于水平有限,感覺有點復雜~~~ 【整整200集】超超超詳細的Python接口自動化測試進階教程,真實模擬企業(yè)項目實戰(zhàn)??! ?

    2024年02月15日
    瀏覽(29)
  • 接口自動化測試系列-接入測試平臺

    接口自動化測試系列-接入測試平臺

    測試平臺目錄 測試平臺自建源碼 后臺核心代碼 部分前端代碼樣例

    2024年02月10日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包