26-----BBS论坛
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')
本文来自博客园,作者:王竹笙,转载请注明原文链接:https://www.cnblogs.com/edeny/p/10021180.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App