31.帖子加精和取消加精功能完成

(1)apps/models.py

class HighLight(db.Model):
__tablename__='highlight_post'
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
post_id=db.Column(db.Integer,db.ForeignKey('post.id'))
create_time=db.Column(db.DateTime,default=datetime.now) post=db.relationship('PostModel',backref='highlight')

(2)cms/views.py

@bp.route('/posts/')
@login_required
@permission_required(CMSPermission.POSTER)
def posts():
context = {
'posts': PostModel.query.all()
}
return render_template('cms/cms_posts.html',**context) @bp.route('/hpost/',methods=['POST'])
@login_required
@permission_required(CMSPermission.POSTER)
def hpost():
post_id=request.form.get('post_id')
if not post_id:
return restful.params_error(message='请传入帖子id')
post=PostModel.query.get(post_id)
if not post:
return restful.params_error(message='没有这篇帖子')
highlight=HighLight()
highlight.post=post
db.session.add(highlight)
db.session.commit()
return restful.success() @bp.route('/uhpost/',methods=['POST'])
@login_required
@permission_required(CMSPermission.POSTER)
def uhpost():
post_id = request.form.get('post_id')
if not post_id:
return restful.params_error(message='请传入帖子id')
post = PostModel.query.get(post_id)
if not post:
return restful.params_error(message='没有这篇帖子')
print(post_id)
highlight=HighLight.query.filter_by(post_id=post_id).first()
print(highlight)
db.session.delete(highlight)
db.session.commit()
return restful.success()

(3)cms_posts.html

{% extends 'cms/cms_base.html' %}
{% from 'common/_macros.html' import static %}
{% block title %}
帖子管理
{% endblock %} {% block head %}
<script src="{{ static('cms/js/posts.js') }}"></script>
{% endblock %} {% block page_title %}
{{ self.title() }}
{% endblock %} {% block main_content %}
<table class="table table-bordered">
<thead>
<tr>
<th>标题</th>
<th>发布时间</th>
<th>版块</th>
<th>作者</th>
<th>操作</th>
</tr>
</thead>
<tbody>
{% for post in posts %}
<tr data-id={{ post.id }} data-highlight={{ 1 if post.highlight else 0 }}>
<td><a target="_blank" href="{{ url_for('front.post_detail',post_id=post.id) }}">{{ post.title }}</a>
</td>
<td>{{ post.create_time }}</td>
<td>{{ post.board.name }}</td>
<td>{{ post.author.username }}</td>
<td>
{% if post.highlight %}
<button class="btn btn-info btn-xs highlight-btn">取消加精</button>
{% else %}
<button class="btn btn-danger btn-xs highlight-btn">加精</button>
{% endif %}
&nbsp;&nbsp;&nbsp;<button class="btn btn-default btn-xs">移除</button>
</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endblock %}

(4)cms/js/posts.js

$(function(){
$('.highlight-btn').on('click',function(){
var $this=$(this);
var tr=$this.parent().parent();
var post_id=tr.attr('data-id');
var highlight=parseInt(tr.attr('data-highlight'));
var url='';
if(highlight){
url='/cms/uhpost/'
}else{
url='/cms/hpost/'
}
zlajax.post({
'url':url,
'data':{
'post_id':post_id
},
'success':function(data){
if(data['code']==200){
zlalert.alertSuccessToast('操作成功');
setTimeout(function(){
window.location.reload();
},500);
}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第一百三十天 ---简单的BBS论坛

    简单的BBS论坛 实现功能 git仓库地址:https://github.com/uge3/BBS 1.整体参考“抽屉新热榜” + “博客园” 2.实现不同论坛版块 3.帖子列表展示 4.个人博客主页 ...

  3. centos 邮件服务 腾讯企业邮箱(免费) 使用iRedmail 需要有公网的centos主机 发邮件协议:smtp 端口25 收邮件协议:pop3 端口110 iredmail安装配置 使用邮箱系统 第三十一节课

    centos   邮件服务  腾讯企业邮箱(免费) 使用iRedmail 需要有公网的centos主机 发邮件协议:smtp 端口25  收邮件协议:pop3 端口110  iredmail安装配置 ...

  4. Django项目 BBS论坛

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

  5. BBS论坛 注册功能

    三.注册功能 # views.py文件 def register(request): back_dic = {'code': 100, 'msg': ''} form_obj = myforms.My ...

  6. 【FastDev4Android框架开发】RecyclerView完全解析之下拉刷新与上拉加载SwipeRefreshLayout(三十一)

    转载请标明出处: http://blog.csdn.net/developer_jiangqq/article/details/49992269 本文出自:[江清清的博客] (一).前言: [好消息] ...

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

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

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

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

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

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

  10. Bootstrap <基础三十一>插件概览

    在前面布局组件中所讨论到的组件仅仅是个开始.Bootstrap 自带 12 种 jQuery 插件,扩展了功能,可以给站点添加更多的互动.即使不是一名高级的 JavaScript 开发人员,也可以着手 ...

随机推荐

  1. docker-compose yaml mysql和wordpress 一行命令搞定~~~

    version: '3.1' services: db: container_name: db image: mysql/mysql-server restart: always networks: ...

  2. UOJ#370. 【UR #17】滑稽树上滑稽果 动态规划

    原文链接www.cnblogs.com/zhouzhendong/p/UOJ370.html 题解 首先易知答案肯定是一条链,因为挂在链的最下面肯定比挂在其他节点上赚. 问题被转化成了从一个集合中不断 ...

  3. SQL Server 获取 ActiveDirectory 用户信息

    SQL Server 是可以访问活动目录中的用户信息的. 1. 先用domain administrator建立一个linked server 2. 然后用OpenQuery去查询活动目录   大家可 ...

  4. 把H5打包成IOS APP其实可以很简单!签名?越狱?都不需要!

    很多小伙伴都在开发自己的app, 有的实现实现比较简单,就是一个h5页面,然后想要打包成app发布出去. 这个想法很单纯 打包生成个app这个是很简单的,网上一堆打包工具,分分钟可以完成 BUT…… ...

  5. linux视频录制,推流处理

    1.linux视频合成(视频后缀要一致) ffmpeg -i 1.mp4 -i 2.mp4 -i 3.mp4 -lavfi hstack=inputs=3 4.mp4 (input=3表示希望合并的视 ...

  6. iptv

    # -*- coding: utf-8 -*- import datetime, time, json, re, os #from pwd import getpwnam #quality str_q ...

  7. python爬虫实践(二)——爬取张艺谋导演的电影《影》的豆瓣影评并进行简单分析

    学了爬虫之后,都只是爬取一些简单的小页面,觉得没意思,所以我现在准备爬取一下豆瓣上张艺谋导演的“影”的短评,存入数据库,并进行简单的分析和数据可视化,因为用到的只是比较多,所以写一篇博客当做笔记. 第 ...

  8. 无法运行 vue-manage-system@3.1.0 dev: `webpack-dev-server --inline --progress --

    一个项目的变大好多人开发,难免会有很多的冲突.每次跟新代码都要一个坑一个坑的解决的.这次遇到这个坑好大.急死了.... 百度了好多说占用端口,试了好几遍不行.最终还是要去查原因的....经过了几个小时 ...

  9. 如何给网站添加IE浏览器升级提示

    1.在代码编辑器中(如Notepad++)打开网站头部模板 2.使用<!––[if IE]>语句添加升级提示,如: 判断是否IE(包含使用IE内核的浏览器) <!––[if IE]& ...

  10. Openstack中RabbitMQ RPC代码分析

    在Openstack中,RPC调用是通过RabbitMQ进行的. 任何一个RPC调用,都有Client/Server两部分,分别在rpcapi.py和manager.py中实现. 这里以nova-sc ...