1,content_processor

  • 上下文处理器应该返回一个字典,字典中的key会被模板中当成变量来渲染
  • 上下文处理器返回的字典,在所有页面中都是可以使用的
  • 被这个装饰器修饰的钩子函数,必须要返回一个字典,即使为空也要返回

登陆的时候才会显示用户名。

from flask import Flask,render_template,g,url_for,request,redirect,session
import os
app = Flask(__name__)
app.config['SECRET_KEY'] = os.urandom(24) @app.route('/')
def hello_world():
# print("index")
return 'index!' @app.route('/login/' ,methods=['GET','POST'])
def login():
# print("login")
if request.method == "GET":
return render_template('login.html')
else:
username = request.form.get('username')
password = request.form.get('password')
if username == "1" and password == "1":
session['username'] = "1"
return 'Success to login in!'
else:
return redirect(url_for('login')) @app.route('/edit/')
def edit():
##1和 #2都是一样的意思,但是1更方便,hasattr() 函数用于判断对象是否包含对应的属性。
if hasattr(g,'username'): #1
# if session.get('username') == "1": #2
return render_template('edit.html')
else:
return redirect(url_for('login')) # before_request:在请求之前执行的,在视图函数执行之前执行的。
# before_request只是一个装饰器,他可把要设置为钩子函数的代码放到视图函数执行之前来执行。
@app.before_request
def my_before_request():
print('hw')
# 有username证明用户是登陆状态
if session.get('username'):
g.username = session.get('username') #g?
# 相当于在每一个视图函数(如‘/’,/login/执行前都会执行这个函数。) @app.context_processor
def mycp():
return {"username":"1"}
if __name__ == '__main__':
app.run()

最新文章

  1. 可用的rtmp互联网地址
  2. 利用CSS3实现圆角的outline效果的教程
  3. 一张图读懂https加密协议
  4. 在excel 中某一单元格添加指定字符的示例
  5. Wordpress添加关键词和描述
  6. C++学习17派生类的构造函数
  7. JSP动作学习一
  8. 结构体struct和typedef后面接指针的含义
  9. C# 操作mongodb 分组
  10. Android实用代码七段(一)
  11. ORACLE模拟临时文件、日志成员、口令文件丢失情况与恢复【weber出品】
  12. linux shell 推断文件或目录是否真的存在
  13. castle之动态代理
  14. 数字(Number)类型(一)
  15. The first day in cnblogs
  16. GitHub for Windows客户端使用操作流程
  17. Eclipse的设置、调优、使用(解决启动卡顿等问题)----转
  18. as2 删除层级影片问题
  19. npm run dev 自动打开浏览器
  20. wpf 用户自定义事件传参

热门文章

  1. 多台centos7服务器实现SSH免密登陆
  2. 代码质量管理平台之SonarQube安装部署
  3. MeteoInfoLab脚本示例:添加南海脚图
  4. c# 常用帮助类
  5. 为什么说 Python 内置函数并不是万能的?
  6. Eclipse JSP +Tomcat 环境搭建 错误记录
  7. linux(CentOS7)_离线_mysql安装
  8. js实现无缝连接轮播图(七)实现左侧按钮的功能
  9. linux安装日志切割程序
  10. Java数据结构-03单链表(二)