首页 > 其他分享 >路飞-轮播图功能

路飞-轮播图功能

时间:2023-02-28 19:35:12浏览次数:23  
标签:功能 verbose 轮播 models django 路飞 import class name

目录

路飞-后端首页轮播图接口

轮播图属于首页功能,后端在apps内创建home 在homeapp中创建banner表
由于很多表有公共的字段,那我们就可以把公共的字段创建一个类 然后用表继承
这样所有的表都有公共字段了

1.在utils下新建 common_model.py 文件中编写公共字段类

from django.db import models


# Create your models here.

class BaseClass(models.Model):
    create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
    update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间')
    is_delete = models.BooleanField(default=False, verbose_name='是否删除')
    is_show = models.BooleanField(default=True, verbose_name='是否展示')
    orders = models.IntegerField(verbose_name='优先级')

    class Meta:
        abstract = True
        # 该字段意思 虚拟表,不需要在数据库创建 只用来继承

2.在models中编写banner表

from LufeiApi.utils.common_models import BaseClass
from django.db import models


class Banner(BaseClass):
    title = models.CharField(max_length=32, verbose_name='广告名称')
    image = models.ImageField(upload_to='banner', verbose_name='图片地址')
    ilnk = models.CharField(max_length=64, verbose_name='跳转链接')
    info = models.TextField(verbose_name='详情')

    class Meta:
        db_table = 'luffy_banner'
        verbose_name_plural = '轮播图表'

    def __str__(self):
        return self.title

3.编写视图函数

3.1控制返回格式 编写MyListModel继承yListModelMixins

from rest_framework.mixins import ListModelMixin
from LufeiApi.utils.common_response import MyResponse


class MyListModel(ListModelMixin):
    def list(self, request, *args, **kwargs):
        res = super().list(request, *args, **kwargs)
        return MyResponse(data=res.data)
      
    # 这样返回的格式就会安装我们封装的MyResponse返回

3.2 编写是函数

from rest_framework.viewsets import GenericViewSet
from .models import Banner
from .serializer import BannerSerializer
from LufeiApi.utils.common_mixins import MyListModel


class BannerView(GenericViewSet, MyListModel):
    queryset = Banner.objects.filter(is_show=True, is_delete=False).order_by('orders')
    serializer_class = BannerSerializer

4.编写序列化类(控制前后端传输的字段)

from rest_framework import serializers
from .models import Banner


class BannerSerializer(serializers.ModelSerializer):
    class Meta:
        model = Banner
        fields = ['id','image','ilnk','orders','title']
        # 控制给前端的数据

总路由分发

每个app都是各自的urls.py文件
我们需要在总路由中 设置路由分发

from django.contrib import admin
from django.urls import path, include
from django.views.static import serve
from django.conf import settings

urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/v1/home/', include('LufeiApi.apps.home.urls')),
    # 每一个app都需要在这里注册一下
    path('media/<path:path>', serve, {'document_root': settings.MEDIA_ROOT}),
]



app内子路由

from rest_framework.routers import SimpleRouter
from LufeiApi.apps.home import views
router = SimpleRouter()
router.register('banner',views.BannerView,'banner')

urlpatterns = [ ]
urlpatterns += router.urls

# 地址:ip+端口+总路由'api/v1/home/'+子路由'banner'  就可以出发对应的功能

通过simpleui录入数据

# 主站前后端分离
# 后台管理使用django 的admin做的---》simpleui

# 使用步骤:
第一步:安装simpleui
pip install django-simpleui
第二步:注册app
	'simpleui',
第三步:在对应app的admin.py中注册表
    from .models import Banner
		admin.site.register(Banner)

标签:功能,verbose,轮播,models,django,路飞,import,class,name
From: https://www.cnblogs.com/moongodnnn/p/17165668.html

相关文章

  • 路飞项目---day04()
    昨日回顾#1封装日志 #咱们用的方案 django--》原生日志---》配置文件copy过来---》写一个py文件,在py文件中拿到配置文件中定义的django日志对象,以后导入使用即可......
  • Luffy项目:3、前端调整(全局css、全局配置、全局axios...),后端主页轮播图表设计,接口部分
    目录Luffy项目一、luffy项目前端调整1、全局css2、全局配置文件3、安装axios4、安装vue-cookies5、安装elementui6、安装bootstrap和jq二、后端主页部分1、轮播图部分表设......
  • 路飞项目使用mysql数据库详细讲解
    目录一、首先需要彻底删除原有的数据库步骤二、去官网下载mysql步骤三、安装mysql数据库步骤四、一管理员身份进去cmd进行一系列命令启动五、接下来为路飞项目创建数据库六......
  • 路飞项目 - 前端准备
    目录路飞项目-前端准备1路飞前台全局css,全局配置文件1.1vue-cli创建项目,整理项目1.2全局css清理1.3全局js组件中发送url的两种方法(1)方法一:放到vue的原型中2axios放......
  • 路飞-
    1.路飞前台全局css,全局配置文件1.1整理项目将App.vue中的内容删除:<template><divid="app"><router-view/></div></template><style></style>route......
  • 一步打通多渠道服务场景 中电金信源启移动开发平台MADP功能“上新”
    日前,中电金信源启移动开发平台MADP功能迭代升级,“上新”源启小程序开发平台。定位“为金融业定制”的移动PaaS平台,源启小程序开发平台为银行、互联网金融、保险、证券客户提......
  • 今日总结-安卓设计界面功能:按钮与文本框-
    一.文本框代码部分<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:......
  • shell-实现一些小功能脚本
    实现免密登录vim./passwdpasswd="xxxxxxxx"#!/bin/bashsource./passwdfunctionsecret_free_login(){ls/root/.ssh/id_rsa.pub&>/dev/null......
  • 路飞 ---配置前端
    配置前端全局css1.整理项目将下面的所有文件都置为最纯净的样子APP.vue<template><divid="app"><router-view/></div></template>router/index.jsco......
  • 轮播图开发
    HTML布局主要分为了三部分:左右切换按钮、图片列表、底部数字切换按钮 实现交互点:图片能自动轮播,轮播有动画效果,按钮有选中效果,点击左右按钮可切换,点击数字可以切换到对应......