python-flask

119 阅读3分钟

基本结构

上下文

变量名上下文说明
current_app应用上下文当前应用的应用实例
g应用上下文用于临时存储 每次请求都会重置这个变量 例如钩子函数 验证用户身份 然后将临时变量 注册到g.xxx 然后传递给视图函数
request请求上下文这是一个请求对象 封装了客户端发出的HTTP请求数据
session请求上下文这是一个用户会话 是一个字典 用于存储请求之间需要"记住"的数据
  • wsgi是一个多线程的模型 每次客户端的请求都会有不同的线程进行处理 一个线程对应一个request对象
  • Flask使用上下文 让特定的变量在一个线程中全局可访问 这样也不会干扰其他线程

Flask在分配请求之前 会激活上下文 然后web多线程的模型 会选择一个线程进行处理 然后这个线程里可以读取这4个变量

钩子函数

响应

Flask调用视图函数后,会将其返回值作为响应的内容。

  • 返回的第一个参数,多数情况下,响应就是一个简单的字符串,作为HTML页面回送客户端
  • 返回的第2个参数,状态码,Flask默认设为200,需要使用不同的状态码,可以把数字代码作为第二个返回值
    • 302 Found 重定向 redirect()函数
    • 400 Bad Request 客户端请求的语法错误,服务器无法理
    • 401 Unauthorized 请求要求用户的身份认证
    • 403 Forbidden 服务器理解请求客户端的请求,但是拒绝执行此请求
    • 404 Not Found 服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置"您所请求的资源无法找到"的个性页面
    • 500 Internal Server Error 服务器内部错误,无法完成请求
    • 501 Not Implemented 服务器不支持请求的功能,无法完成请求
    • 502 Bad Gateway 作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应
    • 503 Service Unavailable 由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中
  • 返回的第3个参数, HTTP响应首部组成的字典

如果不想这么麻烦 可以使用make_response()函数 生成一个响应对象 在这个响应对象中设置想要的属性即可

重定向 redirect()函数 404 使用abort()函数

渲染

jinja2变量过滤器(详细使用 查看官方文档)