- 用上下文处理器app_context_processor定义函数
- 获取session中保存的值
- 返回字典
- 在父模板中更新导航,插入登录状态判断代码。、
- 注意用{% ... %}表示指令。
- {{ }}表示变量
- 完成注销功能。
- 清除session
- 跳转
- 用上下文处理器app_context_processor定义函数
处理器:
@app.context_processor def mycontext(): usern=session.get('user') if usern: return{'username':usern} else: return{}
base :
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"/> <title>主页 {% block logintitle %} {% endblock %} {% block registtitle %} {% endblock %} {% block questiontitle %} {% endblock %} </title> <link href="{{ url_for('static',filename='css/base.css') }}" rel="stylesheet" type="text/css"> <link rel="stylesheet" type="text/css" href="{{ url_for('static',filename='css/base.css') }}"> <script src="{{ url_for('static',filename='js/myswitch.js') }}"></script> {% block loginhead %} {% endblock %} {% block registhead %} {% endblock %} {% block questionhead %} {% endblock %} </head> <body id="myBody" style="background-image: url(../static/images/basep.jpg)"> <ul> <li><img class="ico" src="../static/imgages/yellow.jpg" alt="" style="margin-top: 12px"></li> <li><a href="{{ url_for('myweb') }}">首页</a></li> <li><input type="text" class="form-control" placeholder="Search" style="margin-top: 8px" ></li> <li><button type="submit" class="btn btn-default" style="margin-top: 8px">搜索</button></li> <li><a href="{{ url_for('question') }}">提问</a></li> {% if username %} <li><a href="#">{{ username }}</a></li> <li><a href="{{ url_for('logout') }}">注销</a></li> {% else %} <li style="float:right"><a href="{{ url_for('login') }}">登陆</a></li> <li style="float:right"><a href="{{ url_for('regist') }}">注册</a></li> {% endif %} <li style="float: right"><img id="myOnOff" onclick="mySwitch()" <img id="myOnOff" onclick="mySwitch()" src="http://www.runoob.com/images/pic_bulbon.gif" width="40px"></li> </ul> <footer> <div class="footer_box"> <p>Posted by: cls</p> </div> </footer> {% block loginbody %} {% endblock %} {% block registbody %} {% endblock %} {% block questiontbody %} {% endblock %} </body> </html>
处理器:
@app.route('/logout') def logout(): session.clear() return redirect(url_for('base'))