BBS论坛(二十三)
23.添加板块
(1)apps/models
- class BoardModel(db.Model):
- __tablename__ = 'board'
- id = db.Column(db.Integer, primary_key=True, autoincrement=True)
- name = db.Column(db.String(20), nullable=False)
- create_time = db.Column(db.DateTime, default=datetime.now)
(2)manage.py
- from apps.models import BoardModel
生成数据库表
- python manage.py db migrate
- python manage.py db upgrade
(3)cms/forms.py
- class AddBoardsForm(BaseForm):
- name=StringField(validators=[InputRequired(message='请输入版块名称'),Length(2,15,message='长度应在2-15个字符之间')])
- class UpdateBoardForm(AddBoardsForm):
- board_id=IntegerField(validators=[InputRequired(message='请输入版块名称')])
(4)cms/views.py
- @bp.route('/boards/')
- @login_required
- @permission_required(CMSPermission.BOARDER)
- def boards():
- board_models=BoardModel.query.all()
- context={
- 'boards':board_models
- }
- return render_template('cms/cms_boards.html',**context)
- @bp.route('/aboards/',methods=['POST'])
- @login_required
- @permission_required(CMSPermission.BOARDER)
- def aboards():
- form=AddBoardsForm(request.form)
- if form.validate():
- name=form.name.data
- board=BoardModel(name=name)
- db.session.add(board)
- db.session.commit()
- return restful.success()
- else:
- return restful.params_error(message=form.get_error())
- @bp.route('/uboards/',methods=['POST'])
- @login_required
- @permission_required(CMSPermission.BOARDER)
- def uboards():
- form=UpdateBoardForm(request.form)
- if form.validate():
- board_id=form.board_id.data
- name=form.name.data
- board=BoardModel.query.get(board_id)
- if board:
- board.name=name
- db.session.commit()
- return restful.success()
- else:
- return restful.params_error(message='没有这个版块')
- else:
- return restful.params_error(message=form.get_error())
- @bp.route('/dboards/',methods=['POST'])
- @login_required
- @permission_required(CMSPermission.BOARDER)
- def dboards():
- board_id=request.form.get('board_id')
- if not board_id:
- return restful.params_error(message='请传入版块ID')
- board=BoardModel.query.get(board_id)
- if board:
- db.session.delete(board)
- db.session.commit()
- return restful.success()
- else:
- return restful.params_error(message='没有这个版块')
(5)cms/js/boards.js
- $(function () {
- $('#add_board_btn').on('click', function () {
- event.preventDefault();
- zlalert.alertOneInput({
- 'title':'添加板块',
- 'text': '请输入板块名称',
- 'placeholder': '版块名称',
- 'confirmCallback': function (inputValue) {
- zlajax.post({
- 'url': '/cms/aboards/',
- 'data': {
- 'name': inputValue
- },
- 'success': function (data) {
- if (data['code'] == 200) {
- window.location.reload();
- } else {
- zlalert.alertInfo(data['message']);
- }
- }
- });
- }
- })
- });
- });
(6)cms/cms_boards.html
- {% extends 'cms/cms_base.html' %}
- {% from'common/_macros.html' import static %}
- {% block title %}
- 板块管理
- {% endblock %}
- {% block head %}
- <script src="{{ static('cms/js/boards.js') }}"></script>
- {% endblock %}
- {% block page_title %}
- {{ self.title() }}
- {% endblock %}
- {% block main_content %}
- <div class="top-box">
- <button class="btn btn-warning" id="add_board_btn" style="float: right">添加新版块</button>
- </div>
- <table class="table table-bordered">
- <thead>
- <tr>
- <th>版块名称</th>
- <th>帖子数量</th>
- <th>创建时间</th>
- <th>操作</th>
- </tr>
- </thead>
- <tbody>
- {% for board in boards %}
- <tr data-name="{{ board.name }}" data-id="{{ board.id }}">
- <td>{{ board.name }}</td>
- <td>0</td>
- <td>{{ board.create_time }}</td>
- <td>
- <button class="btn btn-default edit-board-btn">编辑</button>
- <button class="btn btn-danger delete-board-btn">删除</button>
- </td>
- </tr>
- {% endfor %}
- </tbody>
- </table>
- {% endblock %}
BBS论坛(二十三)的更多相关文章
- BBS论坛(十三)
13.1点击更换图形验证码 (1)front/signup.html <div class="form-group"> <div class="inpu ...
- python 学习笔记二十 django项目bbs论坛
项目:开发一个简单的BBS论坛 需求: 整体参考“抽屉新热榜” + “虎嗅网” 实现不同论坛版块 帖子列表展示 帖子评论数.点赞数展示 在线用户展示 允许登录用户发贴.评论.点赞 允许上传文件 帖子可 ...
- 开源BBS论坛软件推荐
七款开源BBS论坛软件推荐(1) 本文介绍了七个开源的BBS论坛软件(在英文界一般叫做Forum).可能国内的朋友们比较熟悉Discuz!和PHPwind,但其实我们的选择还是很多的,而且下面介绍的这 ...
- Django项目 BBS论坛
BBS论坛 一.项目表分析 二.自定义form组件 三.注册功能 四.BBS论坛 登录功能
- Java,面试题,简历,Linux,大数据,常用开发工具类,API文档,电子书,各种思维导图资源,百度网盘资源,BBS论坛系统 ERP管理系统 OA办公自动化管理系统 车辆管理系统 各种后台管理系统
Java,面试题,简历,Linux,大数据,常用开发工具类,API文档,电子书,各种思维导图资源,百度网盘资源BBS论坛系统 ERP管理系统 OA办公自动化管理系统 车辆管理系统 家庭理财系统 各种后 ...
- WPF入门教程系列二十三——DataGrid示例(三)
DataGrid的选择模式 默认情况下,DataGrid 的选择模式为“全行选择”,并且可以同时选择多行(如下图所示),我们可以通过SelectionMode 和SelectionUnit 属性来修改 ...
- Python之路【第十八篇】Django小项目简单BBS论坛部分内容知识点
开发一个简单的BBS论坛 项目需求: 整体参考“抽屉新热榜” + “虎嗅网” 实现不同论坛版块 帖子列表展示 帖子评论数.点赞数展示 在线用户展示 允许登录用户发贴.评论.点赞 允许上传文件 帖子可被 ...
- Bootstrap <基础二十三>页面标题(Page Header)
页面标题(Page Header)是个不错的功能,它会在网页标题四周添加适当的间距.当一个网页中有多个标题且每个标题之间需要添加一定的间距时,页面标题这个功能就显得特别有用.如需使用页面标题(Page ...
- Web 前端开发精华文章推荐(HTML5、CSS3、jQuery)【系列二十三】
<Web 前端开发精华文章推荐>2014年第2期(总第23期)和大家见面了.梦想天空博客关注 前端开发 技术,分享各类能够提升网站用户体验的优秀 jQuery 插件,展示前沿的 HTML5 ...
- Python之路,Day17 - 分分钟做个BBS论坛
Python之路,Day17 - 分分钟做个BBS论坛 本节内容: 项目:开发一个简单的BBS论坛 需求: 整体参考"抽屉新热榜" + "虎嗅网" 实现不同 ...
随机推荐
- 手把手带你入门kubernetes部署
实验环境准备 k8s-master 192.168.2.156 k8s-node节点 192.168.2.161 Ps:两台保证时间同步,firewalld防火墙关闭,selinxu关闭,系统 ...
- vue基础4-数据绑定
1.v-bind 只能实现数据额单向绑定,从M到V,无法实现数据的双向绑定 改变页面输入框的值,打印数据并未改变. 2.v-model 可以实现数据的双向绑定,从M到V.V到M. 注意:v-mode ...
- bzoj1124_枪战_基环树
题目链接 https://www.lydsy.com/JudgeOnline/problem.php?id=1124 https://www.luogu.org/problemnew/show/P34 ...
- 【转】Zookeeper 安装和配置
转自:http://coolxing.iteye.com/blog/1871009 Zookeeper的安装和配置十分简单, 既可以配置成单机模式, 也可以配置成集群模式. 下面将分别进行介绍. 单机 ...
- Google FireBase - fcm 推送 (Cloud Messaging)
要将 Firebase 添加到您的应用,您需要有一个 Firebase 项目以及适用于您的应用的 Firebase 配置文件. 如果您还没有 Firebase 项目,请在 Firebase 控制台中创 ...
- 七牛云音频转码准备工作之如何创建音视频处理私有队列pipeline
如何创建音视频处理私有队列 最近更新时间:2017-08-28 15:54:45 在七牛进行音视频处理,推荐使用私有队列(pipeline). 创建私有队列方法如下: 第一步 登录七牛开发者平台 ht ...
- sketch2code 有的叫screenshot to code什么的
先mark一下项目,回头再深究 https://github.com/mzbac/sketch2code https://www.floydhub.com/emilwallner/datasets/h ...
- HTML入门10
目前,掌握了图像,视频和音频的嵌入,下面来谈iframe和embed.object嵌入网页, 嵌入简史,刚开始流行用嵌入框架然后不同部分显示i不同内容,可以解决下载速度慢时的问题: 慢慢的插件技术流行 ...
- Linux系统如何添加IP别名
IP别名可以在一块物理网卡上绑定多个IP地址,这样就能够在使用单一网卡的同一个服务器上运行多个基于IP的虚拟主机,简单来说,IP别名就是一张物理网卡上配置多个IP,实现类似子接口之类的功能. 那么IP ...
- Centos7 编译安装 Nginx PHP Mariadb Memcached 扩展 ZendOpcache扩展 (实测 笔记 Centos 7.3 + Openssl 1.1.0e + Mariadb 10.1.22 + Nginx 1.12.0 + PHP 7.1.4 + Laravel 5.4 )
环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) 系统版本:CentOS-7-x86_64-Minimal-1611.iso 安装步骤: 1.准备 1.0 查看硬 ...