26.发布帖子前台代码逻辑完成

(1)front/hooks.py

from .views import bp
from flask import session,g
from .models import FrontUser
import config @bp.before_request
def before_request():
if config.FRONT_USER_ID in session:
user_id=session.get(config.FRONT_USER_ID)
user=FrontUser.query.get(user_id)
if user:
g.front_user=user

(2)front/init.py

from . import hooks

(3)front/front_base.html

 <ul class="nav navbar-nav navbar-right">
{% if g.front_user %}
<li class="dropdown">
<a class="dropdown-toggle" id="dropdownMenu1" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="true">
{{ g.front_user.username }}
<span class="caret"></span>
</a>
<ul class="dropdown-menu" aria-labelledby="dropdownMenu1">
<li><a href="#">个人中心</a></li>
<li><a href="#">设置</a></li>
<li><a href="#">退出登录</a></li>
</ul>
</li>
{% else %}
<li><a href="{{ url_for('front.signin') }}">登录</a></li>
<li><a href="{{ url_for('front.signup') }}">注册</a></li>
{% endif %}
</ul>

(4)front/apost.js

$(function () {
var ue = UE.getEditor('ueditor', {'serverUrl': '/ueditor/upload/'});
$('#submit-btn').on('click', function (event) {
event.preventDefault();
var titleInput = $('input[name=title]');
var boardSelect = $('select[name=board_id]'); var title = titleInput.val();
var board_id = boardSelect.val();
var content = ue.getContent();
zlajax.post({
'url': '/apost/',
'data': {
'title': title,
'board_id': board_id,
'content': content
},
'success': function (data) {
if (data['code'] == 200) {
zlalert.alertConfirm({
'msg': '帖子发表成功',
'cancelText': '返回首页',
'confirmText': '再写一篇',
'cancelCallback': function () {
window.location = '/';
},
'confirmCallback': function () {
titleInput.val('');
ue.setContent(''); }
});
} else {
zlalert.alertInfo(data['message']);
} }
})
});
});

(5)config.py

UEDITOR_UPLOAD_PATH=os.path.join(os.path.dirname(__file__),'images')

最新文章

  1. Android 5.X新特性之RecyclerView基本解析及无限复用
  2. Notes:SVG(1)
  3. .NET应用架构设计—面向查询服务的参数化查询设计(分解业务点,单独配置各自的数据查询契约)
  4. PHP路径常量和函数解释
  5. VBS操作剪切板
  6. Linux查看当前目录下文件夹和文件的大小
  7. [Android Pro] 超能RecyclerView组件使用
  8. MySQL存储过程权限分析
  9. IT国家重点实验室
  10. ajax请求参数为中文乱码的情况
  11. Rigidbody组件及相关API
  12. JavaScript 面向对象之原型对象
  13. 自学Aruba集锦
  14. ArrayList代码学习
  15. 微信小程序之wx.showmodal
  16. windows 下设置nginx负载均衡
  17. 一千行 MySQL 学习笔记
  18. 浅谈session测试
  19. wepy绘制雷达图
  20. js获取上、下级html元素 js删除html元素方法

热门文章

  1. 详解如何在 Linux 启动时自动执行命令或脚本
  2. 【WPF开发备忘】使用MVVM模式开发中列表控件内的按钮事件无法触发解决方法
  3. Shell编程-控制结构 | 基础篇
  4. 网络攻击技术:SQL Injection(sql注入)
  5. Scrapy框架之CrawlSpider
  6. Mysql表的约束设计和关联关系设计
  7. 引用Excel控件时,无法嵌入互操作类型“Microsoft.Office.Interop.Excel.ApplicationClass”请改用适用的接口
  8. JAVA DESIGN PATTERN
  9. 分享几个有意思的css js工具网站
  10. Golang websocket推送