flask基础内容总览

flask总览

flask request

request.form #获取formdata中数据
request.args #获取url中的数据
request.data #获取原始数据 content-type 中没有form字眼
request.json #获取content-type:application/json   -->字典
request.files #获取请求中的文件数据Filestorage 对象 --->save(储存路径)

request.method #获取请求方式 GET,POST,DELETE,PUT
request.path  #获取请求路径,路由地址
request.host_url #获取请求host地址
request.cookie #获取cookie对象
request.headers #获取请求头中的数据

request.enciron  #使用wsgi的原始数据

flask response

1 ""   #返回字符串.
2. render_templates("模板名称") --->默认模板存放路径templates 
3.redirect("/路由地址")   #响应头中:location:http://url/路由地址 

4.send_file()     #打开并返回文件内容.自动识别文件类型.content-type:文件类型
5.jsonfy(dict)   #返回标准格式的JSON格式字符串.响应头中 content-type:application/json

flask 中的session

from flask import session
如果要使用session.需要再application.secret_key="字符串" --->  设置密钥
                     即:app.config['SECRET_KET']="字符串"

session['user'] =123    #设置session

使用session取值时,使用get().   如果使用session[] 取值,如果不存在会报(keyerror错误)


flask 中session 交由客户端保管机制:

正:
1.session['user']= "123"    #设置密钥
2.序列化session 字符串
3.挺高SECRET_KEY 加密字符串(加密算法)
4.cookie中加入 {SESSION_COOKIE_NAME}:SECRET_KEY   加密字符串
反:
1.cookie 获取{SESSION_COOKIE_NAME}:SECRET_KEY
2.通过SECRET_KET 解密,字符串,解密算法
3.反序列化
4.session.get("user")

flask中的路由

fbv增加路由:
    @app.route("/")
    app.add_url_rule 

cbv增加路由:
	app.add_url_rule 
	
	
endpoint app 中是唯一的.路由和视图函数之间的桥梁

flask初始化

app=Flask(__name__)
template_folder  #模板存放路径(原理:os.path.join(root_path,template_folder))
static_folder    #静态文件存放路径
static_url_path  #静态文件访问路径         一般情况:"/{static_folder}"
~~~

flask配置

app.deflaut_config  查看默认配置

蓝图

蓝图就是不能run 的flask实例
蓝图中,没有config对象的

特殊装饰器

@app.before_request  #在请求进入视图函数之前
@app.after_request   #在响应和客户端之前

正常:be1 -> be2-> 视图函数 ->af2 -af1
异常:be1 ->异常 ->af2 ->af1

@app.errorhandler(4xx,5xx)   #重定义错误信息

@app 可以是 @bp.   蓝图对象

cbv

from flask import views


class Login(views.MethodView):	--->		#创建class类
    def get(self):				--->		#get方法
        return 'get 200ok'
    def post(self):				--->		#post方法
        return "post 200ok"

#设置cbv的路由.(路径,view_func=Login.as_view(name='自定义名'))--->自定义名和endpoint类似,全views唯一
app.add_url_rule('/login1',view_func=Login.as_view(name='login'))


["get", "post", "head", "options", "delete", "put", "trace", "patch"]
cbv支持的方式. 并且可以在源码中自己添加.可完成自定义反扒机制的目的
posted @ 2019-09-26 21:33  路一  阅读(238)  评论(0编辑  收藏  举报