前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >BBS论坛(三)

BBS论坛(三)

作者头像
zhang_derek
发布2019-02-13 16:07:19
9310
发布2019-02-13 16:07:19
举报

3.1.cms用户名渲染和注销功能实现

显示登录的用户名

(1)app/cms/hooks.py

from .views import bp
import config
from flask import session,g
from .models import CMSUser

@bp.before_request
def before_request():
    if config.CMS_USER_ID in session:
        user_id = session.get(config.CMS_USER_ID)
        user = CMSUser.query.get(user_id)
        if user:
            g.cms_user = user

(2)app/cms/init.py

要导入一下才可以,否则不会执行hooks.py里面的代码

import apps.cms.hooks

(3)cms/cms_index.html

<li><a href="#">{{ g.cms_user.username }}<span>[超级管理员]</span></a></li>

注销功能

cms/views.py

@bp.route('/logout/')
@login_required
def logout():
    del session[config.CMS_USER_ID]
    return redirect(url_for('cms.login'))

cms/cms_index.html

 <li><a href="{{ url_for('cms.logout') }}">注销</a></li>

3.2.cms模板抽离和个人信息页面完成

(1)cms/cms_base.html

{% from "common/_macros.html" import static %}

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>{% block title %}{% endblock %}</title>
    <script src="http://cdn.bootcss.com/jquery/3.1.1/jquery.min.js"></script>
    <link href="http://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
    <script src="http://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
    <link rel="stylesheet" href="{{ static('cms/css/base.css') }}">
    <script src="{{ static('cms/js/base.js')}}"></script>
    {% block head %}{% endblock %}
</head>
<body>
     <nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
      <div class="container-fluid">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="#">Zhang_derek论坛管理后台</a>
        </div>
        <div id="navbar" class="navbar-collapse collapse">
          <ul class="nav navbar-nav navbar-right">
            <li><a href="#">{{ g.cms_user.username }}<span>[超级管理员]</span></a></li>
            <li><a href="{{ url_for('cms.logout') }}">注销</a></li>
          </ul>
          <form class="navbar-form navbar-right">

            <input type="text" class="form-control" placeholder="查找...">
          </form>
        </div>
      </div>
    </nav>

    <div class="container-fluid">
      <div class="row">
          <div class="col-sm-3 col-md-2 sidebar">
              <ul class="nav-sidebar">
                <li class="unfold"><a href="{{ url_for('cms.index') }}">首页</a></li>
                <li class="profile-li">
                    <a href="#">个人中心<span></span></a>
                    <ul class="subnav">
                        <li><a href="{{ url_for('cms.profile') }}">个人信息</a></li>
                        <li><a href="#">修改密码</a></li>
                        <li><a href="#">修改邮箱</a></li>
                    </ul>
                </li>

                      <li class="nav-group post-manage"><a href="#">帖子管理</a></li>

                      <li class="comments-manage"><a href="#">评论管理</a></li>


                      <li class="board-manage"><a href="#">板块管理</a></li>

                      <li class="nav-group user-manage"><a href="#">用户管理</a></li>

                        <li class="nav-group cmsuser-manage"><a href="#">CMS用户管理</a></li>

                      <li class="cmsrole-manage"><a href="#">CMS组管理</a></li>

            </ul>
          </div>
          <div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main">
            <h1>{% block page_title %}{% endblock %}</h1>
              <div class="main_content">
                  {% block main_content %}{% endblock %}
              </div>
          </div>
      </div>
    </div>
</body>
</html>

(2)cms/cms_index.html

{% extends 'cms/cms_base.html' %}

{% block title %}
    Zhang_derek论坛管理后台
{% endblock %}

{% block page_title %}
    我的论坛
{% endblock %}

(3)cms/views.py

@bp.route('/profile/')
@login_required
def profile():
    return render_template('cms/cms_profile.html')

(4)cms/cms_profile.html

{% extends 'cms/cms_base.html' %}

{% block title %}
    个人信息
{% endblock %}

{% block page_title %}
    {{ self.title() }}
{% endblock %}

{% block main_content %}
    {% set user=g.cms_user %}
    <table class="table table-bordered">
        <tbody>
            <tr>
                <td>用户名:</td>
                <td>{{ user.username }}</td>
            </tr>
            <tr>
                <td>邮箱:</td>
                <td>{{ user.email }}</td>
            </tr>
            <tr>
                <td>角色:</td>
                <td>xxxxxxx</td>
            </tr>
            <tr>
                <td>权限:</td>
                <td>xxxxxx</td>
            </tr>
            <tr>
                <td>加入时间:</td>
                <td>{{ user.join_time }}</td>
            </tr>
        </tbody>
    </table>

{% endblock %}

效果:

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-06-05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 3.1.cms用户名渲染和注销功能实现
  • 3.2.cms模板抽离和个人信息页面完成
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档