一百二十七:CMS系统之添加轮播图前后台逻辑

后台逻辑

模型

from exts import dbfrom datetime import datetime

class BannerModel(db.Model):    __tablename__ = ‘banner‘    id = db.Column(db.Integer, primary_key=True, autoincrement=True)    name = db.Column(db.String(255), nullable=False, comment=‘banner名‘)    image_url = db.Column(db.String(255), nullable=False, comment=‘banner图片链接地址‘)    link_url = db.Column(db.String(255), nullable=False, comment=‘点击banner跳转链接地址‘)    priority = db.Column(db.Integer, default=0, comment=‘优先级‘)    create_time = db.Column(db.DateTime, default=datetime.now)

manager管理

python manager.py db migrate
python manager.py db upgrade

form

class AddBannerForm(BaseForm):    name = StringField(validators=[InputRequired(message=‘请输入轮播图名称‘)])    image_url = StringField(validators=[InputRequired(message=‘请输入轮播图图片链接‘)])    link_url = StringField(validators=[InputRequired(message=‘请输入轮播图跳转链接‘)])    priority = IntegerField(validators=[InputRequired(message=‘请输入轮播图优先级‘)])

视图

@bp.route(‘/banners/‘)@login_required@permission_required(CMSPersmission.POSTER)def banners():    banners = BannerModel.query.all()    return render_template(‘cms/cms_banners.html‘, banners=banners)

@bp.route(‘/abanners/‘, methods=[‘POST‘])@login_required@permission_required(CMSPersmission.POSTER)def abanners():    """ 添加banner图 """    form = AddBannerForm(request.form)    if form.validate():        name = form.name.data        image_url = form.image_url.data        link_url = form.link_url.data        priority = form.priority.data        banner = BannerModel(name=name, image_url=image_url, link_url=link_url, priority=priority)        db.session.add(banner)        db.session.commit()        return restful.success()    else:        return restful.params_error(form.get_error())

模板中渲染轮播图信息

<tbody>    {% for banner in banners %}        <tr>            <td>{{ banner.name }}</td>            <td><a href="{{ banner.image_url }}" target="_blank">{{ banner.image_url }}</a></td>            <td><a href="{{ banner.link_url }}" target="_blank">{{ banner.link_url }}</a></td>            <td>{{ banner.priority }}</td>            <td>{{ banner.create_time }}</td>            <td>                <button class="btn btn-default btn-xs">编辑</button>                <button class="btn btn-danger btn-xs">删除</button>            </td>        </tr>    {% endfor %}</tbody>

因为后面会有很多地方用到top-box,所以把top-box的css放到base里面

js

$(function () {   $(‘#save-banner-btn‘).click(function (event) {       event.preventDefault();       var dialog = $(‘#banner-dialog‘);       var nameInput = $(‘input[name="name"]‘);       var imageInput = $(‘input[name="image_url"]‘);       var linkInput = $(‘input[name="link_url"]‘);       var priorityInput = $(‘input[name="priority"]‘);

       var name = nameInput.val();       var image_url = imageInput.val();       var link_url = linkInput.val();       var priority = priorityInput.val();

       if(!name || !image_url || !link_url || !priority ){           xtalert.alertInfoToast(‘请输入完整数据‘);           return;       }       ajax.post({           ‘url‘: ‘/cms/abanners/‘,           ‘data‘: {               ‘name‘: name,               ‘image_url‘: image_url,               ‘link_url‘: link_url,               ‘priority‘: priority           },           ‘success‘: function (data) {               dialog.modal(‘hide‘);  // 隐藏模态框               if(data[‘code‘] == 200){                   // 重新加载当前页面                   window.location.reload();               }else{                   xtalert.alertInfo(data[‘message‘]);               }           },           ‘fail‘: function (error) {                xtalert.alertNetworkError();           }

       });   });});

模板中引用js

操作

原文地址:https://www.cnblogs.com/zhongyehai/p/11964139.html

时间: 2024-10-08 11:05:06

一百二十七:CMS系统之添加轮播图前后台逻辑的相关文章

Flask实战第50天:cms添加轮播图的模态对话框制作

编辑cms_banners.html, 在{% block main_content%}中加上表给内容如下 {% block main_content %} <table class="table table-bordered"> <thead> <tr> <th>名称</th> <th>图片链接</th> <th>跳转链接</th> <th>优先级</th&g

小程序实践(二):swiper组件实现轮播图效果

swiper组件类似于Android中的ViewPager,实现类似轮播图的效果,相对于Android的Viewpager,swiper实现起来更加方便,快捷. 效果图: 首先看下swiper支持的属性: ------------------------------------------------------------------------------------   具体实现轮播功能:    一.添加轮播图片素材   在项目根目录下新建一个目录用于存储图片资源,目录名随意       

luffy-city 基础环境搭建(至轮播图前后台交互实现)-步骤目录

前后台基础环境搭建 以 luffy-city 的主页为例,打通了轮播图的前后台交互 前言:复习-luffy 项目技术点概括 pip 源配置 python 虚拟环境搭建 luffy 后台配置-项目创建-基本插件安装-目录重构-开发环境配置文件配置(dev.prod)-日志配置 luffy 后台配置-项目环境变量 配置-logger自定义封装与使用-异常模块封装-Response二次封装 创建数据库并分配用户权限 创建应用(app)与用户-配置 media 静态资源接口 vue 环境配置-项目创建-

一百二十八:CMS系统之轮播图的编辑和删除功能

编辑 form,继承添加的form 视图 @bp.route('/ubanners/', methods=['POST'])@login_required@permission_required(CMSPersmission.POSTER)def ubanners(): """ 修改banner """ form = UpdateBannerForm(request.form) if form.validate(): banner_id = fo

Flask实战第53天:cms编辑轮播图功能完成

后端逻辑 表单验证, 这里编辑就是和添加的内容一样,所以可以直接继承添加轮播图的表单验证,然后多加一个轮播图的id即可 编辑cmd.forms.py class UpdateBannerForm(AddBannerForm): banner_id = IntegerField(validators=[InputRequired(message='请输入轮播图的id!')]) 视图,编辑cms.views.py ... from .forms import UpdateBannerForm @bp

轮播图的效果实现小米商城和京东商城

案例一: 效果如下:类似小米商城的轮播图 自动切换的:左右的 路径结构: 代码如下: <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Title</title>    <style type="text/css">        *{            padd

AngularJS:实现轮播图效果

要实现这个功能,可以https://github.com/sroze/ngInfiniteScroll这个第三方控件实现的.实现步骤如下: 1. 下载ng-infinite-scroll.js程序http://sroze.github.io/ngInfiniteScroll/ 目前版本是1.0.0 2. 如果你是用的jQuery2.0以上版本,还需要修改ng-infinite-scroll.js程序,将所有的将所有的$window.xxx改为$(window).xxx, elem.xxx改为$(

Swift3.0 轮播图

使用三个UIButton实现无限轮播:https://github.com/LXfeiYu/LXCarouselImages.git 喜欢的朋友给个星!!! 功能: 1.可以选择开启和关闭定时器 2.有点击事件 使用方法: //添加轮播图 let showView = LXShowView.init(frame: CGRect(x:0,y:20,width:self.view.frame.size.width,height:200)) showView.isUserInteractionEnab

NodeJS Express博客项目实战 之 轮播图管理

轮播图管理添加功能 后台轮播图管理的位置: 因此需在此处加一个路由的跳转: 在视图views中后台的index.html <h2><span class="icon-user"></span>系统管理</h2> <ul > <li><a href="/admin/slider" target="right"><span class="icon-ca