1.Flask Request

# from flask import request
request.form # 获取FormData中的数据
request.args # 获取URL中的数据
request.data # 获取原始请求体数据 content-type 中没有Form字眼 b""
request.json # 获取 content-type:application/json 字典
request.files # 获取请求中的文件数据 FileStorage 对象 save(文件路径)
request.method # 获取请求方式 GET POST DELETE PUT
request.path # 获取请求路径 路由地址
request.host_url # 获取请求HOST地址
request.cookies # 获取Cookie对象
request.headers # 获取请求头中的数据

2.Flask Response

1."" HTTPResponse
2.render_templates(模板名称) # 默认模板存放路径 templates
3.redirect("/路由地址") # 响应头中 location:http://url/路由地址
Flask 特殊:
4.send_file("文件路径")
# 打开并返回文件件内容 自动识别文件类型 响应头 Content-Type:文件类型
5.jsonify(dict)
# 返回标注的JSON格式字符串 响应头 Content-Type:application/json

3.Flask 中的 Session

from flask import session
application.secret_key = "$%^&*()&^%$%^&*"
app.config["SECRET_KEY"] = "$%^&*()&^%$%^&*"
session["user"] = 123 if session.get("user") --- session["user"] KeyError 交由客户端保管机制
1.session["user"] = "123"
2.序列化session 字符串
3.通过 SECRET_KEY 加密字符串 加密算法
4.cookie中加入 {SESSION_COOKIE_NAME}:SECRET_KEY 加密字符串
5.返回客户端 反:
1.Cookie获取{SESSION_COOKIE_NAME}:SECRET_KEY
2.通过 SECRET_KEY 解密 字符串 解密算法
3.反序列化 字符串 字典 - session
4.session.get("user")

4.路由

@app.route("/")
def index():
*endpoint app中是唯一的 路由和视图函数之间的桥梁
*methods 允许请求的方式 ["GET","POST","DELETE","PUT"]
**动态参数路由
"/index/<page>"
"/look/<xiaojiejie>/<picture>"
def look(xiaojiejie,picture): defaults = {nid:1} # 视图的默认参数
strict_slashes # 是否严格遵循路由匹配规则 "/结尾/" True False
redirect_to # 永久重定向 301 308 app.add_url_rule()

5.初始化

app = Flask(__name__)
template_folder # 模板存放路径 os.path.join(root_path,template_folder)
static_folder # 静态文件存放路径
static_url_path # 静态文件访问路径 "/{static_folder}"
-import_name # __name__ 锁定当前文件的目录 保证文件唯一
-root_path # 当前application的所在目录 由import_name自动创建
host_matching # 主机位 匹配 config.server_name
static_host # 远程静态文件服务 "{static_host}/{static_folder}"
subdomain_matching # 支持子域名的主机位匹配
instance_path # 另一个Flask示例导入
instance_relative_config # 另一个FlaskConfig导入

6.配置

app.config Flask Config对象
app.debug = True
app.config["DEBUG"] = True
DEBUG 开发环境 log级别低 重启代码错误透传
TESTING 测试环境 log级别较高
SECRET_KEY 开启Session序列化
SESSION_COOKIE_NAME 在Cookie Session名称
SESSION_COOKIE_HTTPONLY 是否只在HTTP请求下开启 session
JSONIFY_MIMETYPE 更改 jsonify 时的 Content-Type class DebugConfig(object):
DEBUG = True
SECRET_KEY = "%^&*()_"
app.config.from_object(DebugConfig)

7.蓝图

蓝图就是不能Run的Flask示例
蓝图中没有Config对象
蓝图的作用 隔离应用 隔离路由 bp = Blueprint("蓝图名称全Flask示例唯一",__name__)
@bp.route("application路由一致",url_prefix="/url前缀")
def bp_index():
app.register_blueprint(bp#蓝图对象)

8.特殊装饰器

@app.before_request # 在请求进入视图函数之前
@app.after_request # 在响应客户端之前
正常:be1 - be2 - vf - af2 - af1
异常:be1 - af2 - af1 @app.errorhandler(404) # 重定义错误信息
def error404(ErrorMessage):
return 5返回 @app 可是 @bp , @bp 当前的装饰器只生效当前 bp

9.CBV

试图类
from flask import views 导入CBV的视图基类
class Login(views.MethodView): # 继承CBV视图基类的最高类
def get(self):
return "GET 200 OK!"
def post(self):
return "POST 200 OK!"

最新文章

  1. CSS的绝对定位和相对定位
  2. Basic4android:多功能的Android应用软件快速开发平台
  3. 去掉Enter字符(\r)的几个方法
  4. a href=&quot;javascript:void(0)&quot; 是什么意思?加不加上有什么区别?
  5. T-SQL动态查询(4)——动态SQL
  6. Python_驻留机制
  7. 记一次尴尬的Java应用内存泄露排查
  8. STM32F103驱动GT911
  9. HDU 5616 Jam&#39;s&#160;balance(Jam的天平)
  10. 【字符串】ZSC-字符串编辑
  11. java学习笔记(六):变量类型
  12. ImportError: No module named &#39;xml&#39;
  13. Mysql的两种引擎
  14. cookie的封装写法
  15. 【模板/经典题型】带有直线限制的NE Latice Path计数
  16. C#中ExecuteReader、ExecuteNonQuery、ExecuteScalar、SqlDataReader、SqlDataAdapter的区别
  17. 【Len&#39;s DMG】macOS Mojave 10.14.1 正式版 18B75 With Clover 4726原版镜像
  18. 如果css足够强大了,你还会用编程的方式实现去实现css已有的功能吗?
  19. SGU 326 Perspective(最大流)
  20. Qt -------- 多线程编程

热门文章

  1. 解决在SQLPLUS中无法使用方向键、退格键问题
  2. Python 使用 paho-mqtt
  3. C++内存管理5-处理new分配内存失败情况(转)
  4. webpack四个基础概念
  5. APT33追踪思路
  6. AspNetCore 限流中间件IpRateLimitMiddleware 介绍
  7. (CSDN迁移) JAVA多线程实现-实现Runnable接口
  8. Android EditText禁止回车换行
  9. LeetCode176——第二高的薪水
  10. 【记录】【solr】solr7.2.1原子更新