zoukankan      html  css  js  c++  java
  • 新闻项目——右上角处理

    第一步:右上角处理——后台逻辑

    正常来说右上角应该要么是登录与注册要么就是已经登录的用户,但现在右上角的登录注册用户什么的都在一起。

     现在就需要把他们区分开来。

    因为右上角是首页的内容,所以我们去到info.modules.index里修改

    还是先写出逻辑再将代码补全。

    @index_blue.route("/")
    def index():
        """"
        首页渲染
        1.处理右上角的逻辑
            1.1获取session值(id)
            1.2根据id查询到指定用户
            1.3将查询到的用户信息返回给前台进行渲染
        """
        # 首页渲染
        # 1.处理右上角的逻辑
        # 1.1获取session值(id)
        user_id = session.get("id")
        # 1.2根据id查询到指定用户
        user = None
        try:
            user = User.query.filter_by(id=user_id).first()
            # user = User.query.filter_by(User.id == user_id).first()
        except Exception as e:
            current_app.logger.error(e)
        # 1.3将查询到的用户信息返回给前台进行渲染
        context = {
            "user":user
        }
        return render_template("news/index.html", context=context)

     第二步:右上角处理——前台逻辑

     前台的代码我们需要去到info.templates.index.html修改

     这里就是需要修改的地方

                {% if context.user %}
                        <div class="user_login fr">
                            <img src="{% if context.user.avatar_url %}{{ context.user.avatar_url }}{% else %}../../static/news/images/person01.png{% endif %}" class="lgin_pic">
                            <a href="#">{{ context.user.nick_name }}</a>
                            <a href="#">退出</a>
                        </div>
                    {% else %}
                        <div class="user_btns fr">
                            <a href="javascript:;" class="login_btn">登录</a> / <a href="javascript:;" class="register_btn">注册</a>
                        </div>
                {% endif %}

     修改好就是下面的效果,但是退出是没反应的。

     第三步:退出处理——前台逻辑

    首先修改退出的前台代码,在刚刚那个地方

     1             {% if context.user %}
     2                     <div class="user_login fr">
     3                         <img src="{% if context.user.avatar_url %}{{ context.user.avatar_url }}{% else %}../../static/news/images/person01.png{% endif %}" class="lgin_pic">
     4                         <a href="#">{{ context.user.nick_name }}</a>
     5                         <a href="javascript:;" onclick="logout()">退出</a>
     6                     </div>
     7                 {% else %}
     8                     <div class="user_btns fr">
     9                         <a href="javascript:;" class="login_btn">登录</a> / <a href="javascript:;" class="register_btn">注册</a>
    10                     </div>
    11             {% endif %}
    12 
    13 
    14 
    15 
    16         </div>
    17     </div>

    然后去到main.js里写函数,里面没有退出的函数所以我们要自己写,在这里把里面的内容删掉(红框里的内容)

     函数名所以改成logout,然后从发送请求那复制过来修改一下

    function logout() {
        $.ajax({
            url:'/passport/logout',   // 请求地址
            type:'get',                // 请求方法
            success:function (response) {  // 回调函数
                if (response.errno == '0') {
                    // 发送短信验证码成功
                        location.reload();
                } else {
                    alert(response.errmsg);
                }
            }
        });
    }

    第四步:退出处理——后台逻辑

    退出和登录是差不多的,所以去password.views里写退出逻辑

    @passport_blue.route("/logout")
    def logout():
        """
        用户退出
        1.删除session
        :return: 
        """
        # 用户退出
        # 1.删除session
        try:
            session.pop("mobile",None)
            session.pop("id",None)
            session.pop("nick_name",None)
        except Exception as e:
            current_app.logger.error(e)
            return jsonify(errno=RET.SERVERERR,errmsg="用户退出失败")
        return jsonify(errno=RET.OK,errmsg="用户退出成功")

    写好后右上角就可以区分好。

  • 相关阅读:
    类和结构体(转)
    XLua标签(转)
    unity项目开始架构
    TCPSocket(转)
    UGUI源码(六)VertexHelper
    图文混排
    渲染管线(转)
    c#tostring用法(转)
    unity协程(转载)
    vue界面显示无效的token
  • 原文地址:https://www.cnblogs.com/tyl23/p/13871681.html
Copyright © 2011-2022 走看看