首页轮播图后端接口设计

逻辑导航

1.当一访问127.0.0.1:8000时,就会向某一地址发送请求
2.请求接口需要返回首页所需要的轮播图片
3.前端vue轮播图组件循环一下后端发送的图片连接列表,依次展示轮播图

轮播图表设计

轮播图中一些共有的字段,我们可以创建一个公共的基础表,以后需要该字段直接基础该表就行

基表,可以放在自己写的utils.py里,以便后期使用!

from django.db import models


# Create your models here.

# 基表,其他app也可能用到,放到utils里
class BaseModel(models.Model):
    create_time = models.DateTimeField(verbose_name='创建时间', auto_now_add=True)
    update_time = models.DateTimeField(verbose_name='更新时间', auto_now=True)
    is_delete = models.BooleanField(verbose_name='是否删除', default=False)
    is_show = models.BooleanField(verbose_name='是否展示', default=True)
    display_order = models.IntegerField(verbose_name='展示顺序')

    class Meta:
        abstract = True # 抽象表,不会在数据库中创建

轮播图表设计:

from luffyapi.utils.models import BaseModel
from django.db import models

class Banner(BaseModel):
    name = models.CharField(verbose_name='图片名称',max_length=32)
    img = models.ImageField(verbose_name='轮播图',upload_to='banner',help_text='图片的大小必须为:3840*800',null=True)
    link = models.CharField(verbose_name='图片跳转链接',max_length=32)
    info = models.TextField(verbose_name='图片简介')

    def __str__(self):
        return self.name

轮播图表的序列化器设计

from rest_framework import serializers
from home import models

# 序列化的时候使用
class BannerModelserialize(serializers.ModelSerializer):
    class Meta:
        model = models.Banner
        fields = ['name','link','img']

轮播图视图设计

from django.shortcuts import render
from rest_framework.views import APIView
from luffyapi.utils.response import APIResponse
from rest_framework.generics import GenericAPIView
from rest_framework.mixins import ListModelMixin
from home import models,serializers
from rest_framework.viewsets import GenericViewSet
from django.conf import settings

# Create your views here.

# class BannerView(GenericAPIView,ListModelMixin): # 继承这两个类的路由是path('banner/',views.BannerView.as_view()),
class BannerView(GenericViewSet,ListModelMixin): # 继承这两个类的路由是path('',include(router.urls)),自动分发路由
    # [: settings.BANNER_COUNTER]这个的作用是切片,限制轮播图片显示给前端的数量
    queryset = models.Banner.objects.filter(is_delete=False,is_show=True).order_by('display_order')[:settings.BANNER_COUNTER]
    serializer_class = serializers.BannerModelserialize

扩展

在限制轮播图片展示给前端的数量的时候,我们采用的是切片的形式

正常切片应该是以下的方式:
image

但是,考虑到后期如果想修改展示轮播图的数量时,很麻烦,还要找到对应的代码,然后修改,再上线!

所以将3替换成配置文件中的参数,以后只需要修改配置文件某一常量的值就可以对于修改轮播图的展示数量了!!

image

优化:将轮播图相关的系统配置,放在一个文件内,比如banner.py
image

将banner.py导入到settings里

image

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:首页轮播图后端接口设计 - Python技术站

(0)
上一篇 2023年4月2日
下一篇 2023年4月2日

相关文章

  • 路飞项目前端主页搭建

    前端主页 图片准备 首先把主页需要到图片资源放到项目的img文件夹下 页头组件:components/Header.vue <template> <div class=”header”> <div class=”slogan”> <p>老男孩IT教育 | 帮助有志向的年轻人通过努力学习获得体面的工作和生活&lt…

    2023年4月2日
    00
  • git的介绍和使用

    git介绍 什么是git git是一种版本控制器 – 控制的对象是开发的项目代码 什么是版本控制器 完成 协同开发 项目,帮助程序员整合代码 i)帮助开发者合并开发的代码 ii)如果出现冲突代码的合并,会提示后提交合并代码的开发者,让其解决冲突 软件:SVN 、 GIT(都是同一个人的个人项目) github、gitee(两个采用git版本控制器管理代码的公…

    2023年4月2日
    00
  • bbs项目前期准备和表设计

    一、前期准备 1.新建一个django项目 2.连接mysql数据库(注意需要在init文件里面书写import pymysql),告诉django使用pymysql连接数据库 3.静态文件路径在settings里配置一下,并且在项目文件夹下新建一个静态文件夹 4.将需要用到bootstrap的css和js文件添加到static文件夹内 二、bbs项目表设计…

    Python开发 2023年4月2日
    00
  • 基本数据类型之列表

    1.列表的定义 1.采用变量名=[]的方式定义2.采用变量名=list()的方式定义 2.列表的作用 列表是用来存多个数据,并且这些数据是需要按位置存放的,后面我们可以通过索引取出列表里的数据。 3.类型转换 但凡可以被for循环遍历的类型(可迭代对象)都可以当做参数传给list()转成列表 4.列表的内置方法 # 1.按照索引取改值(正向取改+反向取改) …

    Python开发 2023年4月2日
    00
  • 关于编辑器和解释型编译型语言

    各种语言用到的编辑器 python开发:pycharm(收费),vscode(免费),sublintext, go开发:goland(收费),vscode,国产的 java:idea(收费),eclipse(免费),MyEclipse(收费) android:androidstudio(免费),eclipse+adt 前端:webstorm(收费) php:…

    Python开发 2023年4月2日
    00
  • 基本运算符

    基本运算符 算术运算符 print(10+2) # 加减乘除运算符 print(10 / 3) print(10 // 3) # 只保留整数部分 print(10 % 3) # 取余数 print(10 ** 3) # 幂方运算 比较运算符 <、>、>=、<=、==、!= 赋值运算符 # =:变量赋值 # +=、-=、*=、**=、/…

    Python开发 2023年4月2日
    00
  • 操作系统启动流程和BIOS介绍

    1.BIOS介绍 我们刚刚买回来的电脑裸机是可以直接启动的,这是由于生产厂商在电脑出厂的时候就在电脑里编写了一个只可读的系统功能BIOS,该系统被写入了ROM(只读内存中) BIOS是一个过渡性的操作系统,当安装了window等其他操作系统时,该系统会被快速的代替 2.操作系统的启动流程 1.计算机通电2.BIOS开始运行,检测硬件:cpu、内存、硬盘等3.…

    2023年4月2日
    00
  • flask蓝图与项目一般结构

    flask一般项目结构 初始化配置flask项目时,路由和视图是放在启动文件里的,这样不太方便我们后期的整理和查阅! 因此,我们需要将项目启动文件和路由视图分开处理! 在项目文件下创建一个apps的包,在包的初始化文件里定义一个函数,用来实现app相关的功能 init.py from flask import Flask import settings de…

    Python开发 2023年4月2日
    00
合作推广
合作推广
分享本页
返回顶部