21.1.编辑轮播图功能完成

(1)cms_banners.html

把属性绑定到<tr>上面,方便找到各属性的值

   <tbody>
{% for banner in banners %}
<tr data-name="{{ banner.name }}" data-id="{{ banner.id }}" data-img="{{ banner.img_url }}"
data-link="{{ banner.link_url }}" data-priority="{{ banner.priority }}"> <td>{{ banner.name }}</td>
<td><a href="{{ banner.img_url }}" target="_blank">{{ banner.img_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 edit-banner-btn">编辑</button>
<button class="btn btn-danger btn-xs delete-banner-btn">删除</button>
</td>
</tr>
{% endfor %}
</tbody>

(2)banner.js

$(function () {
$('#save_banner_btn').click(function (event) {
event.preventDefault();
var self = $(this);
var dialog = $('#modal-dialog');
var nameInput = $("input[name='name']");
var imgInput = $("input[name='img_url']");
var linkInput = $("input[name='link_url']");
var priorityInput = $("input[name='priority']"); var name = nameInput.val();
var img_url = imgInput.val();
var link_url = linkInput.val();
var priority = priorityInput.val();
var submitType = self.attr('data-type');
var bannerId = self.attr('data-id'); if (!name || !img_url || !link_url || !priority) {
zlalert.alertInfo('请输入所有数据');
return;
} var url = '';
if (submitType == 'update') {
url = '/cms/ubanner/';
} else {
url = '/cms/abanner/'
}
zlajax.post({
'url': url,
'data': {
'name': name,
'img_url': img_url,
'link_url': link_url,
'priority': priority,
'banner_id': bannerId
},
'success': function (data) {
if (data['code'] == 200) {
dialog.modal('hide');
window.location.reload()
} else {
zlalert.alertInfo(data['message']);
}
},
'fail': function (error) {
zlalert.alertNetworkError()
}
});
}); }); $(function () {
$('.edit-banner-btn').on('click', function (event) {
var $this = $(this);
var dialog = $('#banner-dialog');
dialog.modal('show'); var tr = $this.parent().parent();
var name = tr.attr('data-name');
var img = tr.attr('data-img');
var link = tr.attr('data-link');
var priority = tr.attr('data-priority');
var nameInput = dialog.find('input[name=name]');
var imgInput = dialog.find('input[name=img_url]');
var linkInput = dialog.find('input[name=link_url]');
var priorityInput = dialog.find('input[name=priority]');
var saveBtn = dialog.find('#save_banner_btn'); nameInput.val(name);
imgInput.val(img);
linkInput.val(link);
priorityInput.val(priority);
saveBtn.attr('data-type', 'update');
saveBtn.attr('data-id', tr.attr('data-id')); });
});

(3)cms/forms.py

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

(4)cms/views.py

@bp.route('/ubanner/',methods=['POST'])
def ubanner():
form=UpdateBannerForm(request.form)
if form.validate():
banner_id=form.banner_id.data
name=form.name.data
img_url=form.img_url.data
link_url=form.link_url.data
priority=form.priority.data
banner=BannerModel.query.get(banner_id)
if banner:
banner.name=name
banner.img_url=img_url
banner.link_url=link_url
banner.priority=priority
db.session.commit()
return restful.success()
else:
return restful.params_error(message='没有这个轮播图')
else:
return restful.params_error(message=form.get_error())

21.2.删除轮播图功能完成

(1)cms/forms.py

class UpdateBannerForm(AddBannerForm):
banner_id=IntegerField(validators=[InputRequired(message='请输入轮播图ID')])

(2)banner.js

$(function () {
$('.delete-banner-btn').on('click', function () {
var banner_id = $(this).parent().parent().attr('data-id');
zlalert.alertConfirm({
'msg': '确定要删除这张图片吗?',
'confirmCallback': function () {
zlajax.post({
'url': '/cms/dbanner/',
'data': {
'banner_id': banner_id
},
'success': function (data) {
if (data['code'] == 200) {
window.location.reload();
} else {
zlalert.alertInfo(data['message'])
}
} })
}
});
});
});

BBS论坛(二十一)的更多相关文章

  1. BBS论坛(十一)

    11.1.前台用户模型创建 (1)apps/front/models.py 首先安装:pip install shortuuid class FrontUser(db.Model): __tablen ...

  2. python 学习笔记二十 django项目bbs论坛

    项目:开发一个简单的BBS论坛 需求: 整体参考“抽屉新热榜” + “虎嗅网” 实现不同论坛版块 帖子列表展示 帖子评论数.点赞数展示 在线用户展示 允许登录用户发贴.评论.点赞 允许上传文件 帖子可 ...

  3. 牢记!SQL Server数据库开发的二十一条注意点

    如果你正在负责一个基于SQL Server的项目,或者你刚刚接触SQL  Server,你都有可能要面临一些数据库性能的问题,这篇文章会为你提供一些有用的指导(其中大多数也可以用于其它的DBMS). ...

  4. SQL Server数据库开发的二十一条军规

    如果你正在负责一个基于SQL Server的项目,或者你刚刚接触SQL Server,你都有可能要面临一些数据库性能的问题,这篇文章会为你提供一些有用的指导(其中大多数也可以用于其它的DBMS).在这 ...

  5. 开源BBS论坛软件推荐

    七款开源BBS论坛软件推荐(1) 本文介绍了七个开源的BBS论坛软件(在英文界一般叫做Forum).可能国内的朋友们比较熟悉Discuz!和PHPwind,但其实我们的选择还是很多的,而且下面介绍的这 ...

  6. Django项目 BBS论坛

    BBS论坛 一.项目表分析 二.自定义form组件 三.注册功能 四.BBS论坛 登录功能

  7. Java,面试题,简历,Linux,大数据,常用开发工具类,API文档,电子书,各种思维导图资源,百度网盘资源,BBS论坛系统 ERP管理系统 OA办公自动化管理系统 车辆管理系统 各种后台管理系统

    Java,面试题,简历,Linux,大数据,常用开发工具类,API文档,电子书,各种思维导图资源,百度网盘资源BBS论坛系统 ERP管理系统 OA办公自动化管理系统 车辆管理系统 家庭理财系统 各种后 ...

  8. Python之路【第十八篇】Django小项目简单BBS论坛部分内容知识点

    开发一个简单的BBS论坛 项目需求: 整体参考“抽屉新热榜” + “虎嗅网” 实现不同论坛版块 帖子列表展示 帖子评论数.点赞数展示 在线用户展示 允许登录用户发贴.评论.点赞 允许上传文件 帖子可被 ...

  9. 无废话ExtJs 入门教程二十一[继承:Extend]

    无废话ExtJs 入门教程二十一[继承:Extend] extjs技术交流,欢迎加群(201926085) 在开发中,我们在使用视图组件时,经常要设置宽度,高度,标题等属性.而这些属性可以通过“继承” ...

  10. Bootstrap <基础二十一>徽章(Badges)

    Bootstrap 徽章(Badges).徽章与标签相似,主要的区别在于徽章的边角更加圆滑. 徽章(Badges)主要用于突出显示新的或未读的项.如需使用徽章,只需要把 <span class= ...

随机推荐

  1. OpenCV函数学习:alignPtr对齐指针

    转载地址:https://www.tuicool.com/articles/q2QrQr 在某些架构上,只有能被指定数(如4,16)整除的内存地址才能够被访问,否则程序会crash,或者出现错误的结果 ...

  2. PostGIS导出SHP中文乱码

    设置系统的环境变量 PGCLIENTENCODING=GBK,退出PostgreSQL重新登錄,执行成功!

  3. navicat连接centos7上mysql:2003-Can't connect to MySQL server (10060)

    问题解决步骤: 1.参考http://jingyan.baidu.com/article/95c9d20dac9040ec4f75617a.html,发现是防火墙未关闭: 2.关闭并禁止firewal ...

  4. Spring,Spring MVC及Spring Boot区别

    什么是Spring?它解决了什么问题? 我们说到Spring,一般指代的是Spring Framework,它是一个开源的应用程序框架,提供了一个简易的开发方式,通过这种开发方式,将避免那些可能致使代 ...

  5. 迅雷最新bug已被找到!mac不用登录也可以极速下载了!

    想体验迅雷不限速的快感吗?下载这款迅雷Mac(不限速免vip)免登录版吧!拥有了这款迅雷Mac破解版,电影.游戏等所有大文件都不在话下.体验极速的下载功能,尽在迅雷Mac(不限速免vip)破解版!需要 ...

  6. Tomcat映射路径

    打开tomcat安装包,在config目录下修改server.xml文件: 在<Host>标签中添加: <Context path="" docBase=&quo ...

  7. 【spring】-- jsr303参数校验器

    一.为什么要进行参数校验? 当我们在服务端控制器接受前台数据时,肯定首先要对数据进行参数验证,判断参数是否为空?是否为电话号码?是否为邮箱格式?等等. 这里有个问题要注意: 前端代码一般上会对这些数据 ...

  8. Mac安装sqlite3

    1,下载最新版本的 Mac OS X 会预安装 SQLite,但是如果没有可用的安装,只需按照如下步骤进行: 去安装最新的3.8.6版本,和linux的sqlite3安装版本是同一个. 软件地址为:h ...

  9. 黑洞版视频裂变程序【接口版】全新上线,全新UI,支持分享数据统计

    黑洞版视频裂变程序[接口版]全新上线,全新UI,支持分享数据统计!   后台效果   程序统一售价:1899/套(包安装,包更新) 注:本程序不属于之前视频程序的更新版,展现形式和广告位设置均不同,是 ...

  10. PHP常用日期加减计算方法实例

    PHP常用日期加减计算方法实例 实例总结了PHP常用日期加减计算方法.分享给大家供大家参考,具体如下: PHP 标准的日期格式 date("Y-m-d H:i:s"); PHP 简 ...