接下来我们处理主页面的逻辑问题
正常的现实已经登录的未登录。
怎么区分用户是否登录。我们只需要查看session值就可以了。
我们首页的处理在index里面,因为index是处理的首页渲染,password是处理用户。
我们来分析一下。
1.处理右上角逻辑
1.1 获取session值(ID的session值)
1.2 根据ID找到指定用户
1.3将查询到的用户信息传到前端进行渲染
如果出现这个打开设置,选中那个文件,点击紫色的文件,然后点击OK。就可以了。
第一步。
获取session值
# 1.1获取session值(ID的session值) user_id=session.get("id")
第二步。
根据ID找到指定用户
# 1.2根据ID找到指定用户 try: user=User.query.filter_by(id=user_id).first() # user = User.query.filter(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)
接下来我们写前台的处理
来到index里面。
如果index里面的viwes视图里面有数据,那么在index里面就会显示下面,不会显示上面。
在设置一下
就会好些一点。有提示。
我们先在这里写
把这段复制到里面
<div class="user_login fr"> <img src="../../static/news/images/person01.png" class="lgin_pic"> <a href="#">用户张三</a> <a href="#">退出</a> </div>
有用户就显示这里,没有用户就显示下面的。
运行后就是下面的了。
但是登陆后还是张三,接下来我们就处理这个。
再次打开昵称就会变成手机号。头像设置在个人中心,以后会讲解此知识点。
就会好些一点。有提示。
我们先在这里写
把这段复制到里面
<div class="user_login fr"> <img src="../../static/news/images/person01.png" class="lgin_pic"> <a href="#">用户张三</a> <a href="#">退出</a> </div>
有用户就显示这里,没有用户就显示下面的。
运行后就是下面的了。
但是登陆后还是张三,接下来我们就处理这个。
再次打开昵称就会变成手机号。头像设置在个人中心,以后会讲解此知识点。但是点退出没有效果,接下来我们就解决这个问题。
我们来到main.js里面写下这串代码
然后我们回到index里面调用我们上面写的函数
前端页面也就这点,接下来我们处理后端的。
我们来到password的函数试图然后写。
@passport_blue.route("/logout") # 不需要请求方式,因为默认的就是get。
def logout():
"""
用户退出
删除session
:return:
"""
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="用户退出成功")