26-----BBS论坛

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')
posted @   王竹笙  阅读(193)  评论(0编辑  收藏  举报
编辑推荐:
· .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
点击右上角即可分享
微信分享提示