一、数据库设计

轮播图

1、安装依赖

pip install Pillow

2、模型类:home/models.py

class Banner(models.Model):
"""轮播图"""
# upload_to 存储子目录,真实存放地址会使用配置中的MADIE_ROOT+upload_to
image = models.ImageField(upload_to='banner', verbose_name='轮播图', null=True, blank=True)
name = models.CharField(max_length=150, verbose_name='轮播图名称')
note = models.CharField(max_length=150, verbose_name='备注信息')
link = models.CharField(max_length=150, verbose_name='轮播图广告地址')
orders = models.IntegerField(verbose_name='显示顺序')
is_show=models.BooleanField(verbose_name="是否上架", default=False)
is_delete=models.BooleanField(verbose_name="逻辑删除", default=False) class Meta:
db_table = 'luffy_banner'
verbose_name = '轮播图'
verbose_name_plural = verbose_name def __str__(self):
return self.name

3、数据迁移:外层luffyapi路径下的终端

4、序列化:home/serializers.py

from rest_framework.serializers import ModelSerializer
from . import models class BannerModelSerializer(ModelSerializer):
class Meta:
model = models.Banner
# 序列化的目的就是反馈给外界,所以指定的字段就行,其他字段用于orm数据的筛选
fields = ['image', 'link']

5、视图模块:home/views.py

from rest_framework.generics import ListAPIView
from luffyapi.settings import constant
from . import serializers, models class BannerListAPIView(ListAPIView):
# 设置要返回的数据源 # 是否显示 # 轮播图按最新的排序
queryset = models.Banner.objects.filter(is_show=True, is_delete=False).order_by('-orders')[
:constant.BANNER_LIMIT_COUNT]
# 格式化返回的数据(有哪些字段,数据的深度)
serializer_class = serializers.BannerModelSerializer

6、常量配置文件:settings/constant.py

# 轮播图最大长度
BANNER_LENGTH = 3

7、子路由

urlpatterns = [
path("banner/", views.BannerListAPIView.as_view()),
]

二、xadmin后台管理

1、安装:luffy虚拟环境下

pip install https://codeload.github.com/sshwsfc/xadmin/zip/django2

2、在dev中注册app

INSTALLED_APPS = [

    # xamin主体模块
'xadmin',
# 渲染表格模块
'crispy_forms',
# 为模型通过版本控制,可以回滚数据
'reversion',
]

3、设置主路由替换掉admin

# xadmin的依赖
import xadmin
xadmin.autodiscover()
# xversion模块自动注册需要版本控制的 Model
from xadmin.plugins import xversion
xversion.register_models() urlpatterns = [ path(r'xadmin/', xadmin.site.urls),
]

4、创建超级管理员:外层luffyapi路径终端

# 在项目根目录下的终端
python manage.py createsuperuser
# 账号密码设置:admin | admin

5、在home下创建新的adminx.py,完成xadmin全局配置和注册mode

import xadmin

from xadmin import views

class GlobalSettings(object):
"""xadmin的全局配置"""
site_title = "路飞学城" # 设置站点标题
site_footer = "路飞学城有限公司" # 设置站点的页脚
menu_style = "accordion" # 设置菜单折叠 xadmin.site.register(views.CommAdminView, GlobalSettings) from . import models xadmin.site.register(models.Banner)

6、xadmin:需要自己的数据库模型类,完成数据库迁移

python manage.py makemigrations
python manage.py migrate

7、 修改app:home的名字:xadmin页面上的显示效果

在home/__init__.py中设置:

default_app_config = "home.apps.HomeConfig"

在home/apps.py中

from django.apps import AppConfig
class HomeConfig(AppConfig):
name = 'home'
verbose_name = '我的首页'

xadmin页面效果显示:

8、添加轮播图

轮播图和xadmin后台管理的更多相关文章

  1. 潭州课堂25班:Ph201805201 django 项目 第四十一课 后台 轮播图管理功能讲解,文档管理功能 实现 (课堂笔记)

    在进入轮播图管理页面时,要把轮播图显示在页面上,所以后台要向前台返回: 图片路由,:image_url 优先级: priority def get(self, request): # priority ...

  2. 从零开始,搭建博客系统MVC5+EF6搭建框架(5),博客详情页、留言、轮播图管理、右侧统计博文

    一.博客系统进度回顾 上一遍博客介绍到,系统已经实现到了发布以及前台布局展示,接下来就是实现一些,详情页,留言.轮播图管理.右侧博文统计信息实现. 二.博客系统详情页实现 2.1先来看看详情页展示的效 ...

  3. Luffy之Xadmin以及首页搭建(轮播图,导航)

    1. 首页 1.1 轮播图 admin站点配置支持图片上传 pip install Pillow 默认情况下,Django会将上传的图片保存在本地服务器上,需要配置保存的路径.我们可以将上传的文件保存 ...

  4. 前台主页搭建、后台主页轮播图接口设计、跨域问题详解、前后端互通、后端自定义配置、git软件的初步介绍

    今日内容概要 前台主页 后台主页轮播图接口 跨域问题详解 前后端打通 后端自定义配置 git介绍和安装 内容详细 1.前台主页 Homeviwe.vue <template> <di ...

  5. 潭州课堂25班:Ph201805201 django 项目 第二十二课 文章主页 新闻列表页面滚动加载,轮播图后台实现 (课堂笔记)

    新建static/js/news/index.js文件 ,主要用于向后台发送请求, // 新建static/js/news/index.js文件 $(function () { // 新闻列表功能 l ...

  6. Flask实战第49天:cms轮播图管理页面布局

    新建cms_banners.html继承cms_base.html {% extends 'cms/cms_base.html' %} {% block title %} 轮播图管理-CMS管理系统 ...

  7. 一百二十六:CMS系统之轮播图管理页面布局和添加轮播图的模态对话框制作

    视图 @bp.route('/banners/')@login_required@permission_required(CMSPersmission.POSTER)def banners(): re ...

  8. 一百三十二:CMS系统之前端动态获取后台添加的轮播图

    先准备几张轮播图 排序顺序改为根据优先级倒序排 前端首页接口 @bp.route('/')def index(): banners = BannerModel.query.order_by(Banne ...

  9. 【VIP视频网站项目一】搭建视频网站的前台页面(导航栏+轮播图+电影列表+底部友情链接)

    首先来直接看一下最终的效果吧: 项目地址:https://github.com/xiugangzhang/vip.github.io 在线预览地址:https://xiugangzhang.githu ...

随机推荐

  1. 宿主机-免密登录Docker容器

    CentOS7 安装Docker 讨论QQ:1586558083 目录 一.检查系统内核 二.安装Docker 2.1 安装 2.2 查看docker版本 2.3 启动docker 三.建立docke ...

  2. 安装gitlab ce

    切换到root用户,安装相关依赖 yum install curl policycoreutils openssh-server openssh-clients service sshd restar ...

  3. 实现远程线程DLL注入

    ### 32位:远程线程注入 远程线程注入是最常用的一种注入技术,该技术利用的核心API是 `CreateRemoteThread()` 这个API可以运行远程线程,其次通过创建的线程调用 `Load ...

  4. 导出excel-模版

    后台代码 public void ToExcel(){ //第一步:获取模版文件物理路径 string file_0 = Server.MapPath("/Content/Excel/Exp ...

  5. 机器学习-正则化(岭回归、lasso)和前向逐步回归

    机器学习-正则化(岭回归.lasso)和前向逐步回归 本文代码均来自于<机器学习实战> 这三种要处理的是同样的问题,也就是数据的特征数量大于样本数量的情况.这个时候会出现矩阵不可逆的情况, ...

  6. Communication between C++ and Javascript in Qt WebEngine(转载)

    Communication between C++ and Javascript in Qt WebEngine admin January 31, 2018 0 As Qt WebKit is re ...

  7. 上海的Costco,谈谈你的理解和感受

    众所周知,Costco在上海第一天开业,由于人流量过大,一度暂停营业.我觉得Costco的成功在于不走寻常路,换位思考(站在用户.厂商角度看问题),下面几点是我觉得它做得比较独特的地方: 1. Cos ...

  8. API接口之安全篇

    APP.前后端分离项目都采用API接口形式与服务器进行数据通信,传输的数据被偷窥.被抓包.被伪造时有发生,那么如何设计一套比较安全的API接口方案呢? 一般的解决方案如下: 1.Token授权认证,防 ...

  9. 错误信息 NSError

    一.获取系统的错误信息 比如移动文件时,获取文件操作错误: NSError *e = nil;[[NSFileManager defaultManager] moveItemAtPath:source ...

  10. Hyperledger Fabric(1)基础架构

    前言 在区块链的家谱里,第一代区块链系统是以比特币为代表的公链,主要实现的是数字货币的功能:第二代区块链系统是以以太坊平台为代表的公链,创造性的实现了智能合约.而第三代区块链系统,则是HyperLed ...