CBV样式
CBV样式 PS:在cbv里不能用装饰器调用,只能用add_url_rule方法调用
class IndexViews(views.MethodView):
method=['POST'] #方法固定只能用post方法,
decoretors=[auth,] #给所有这个类里的方法,加上auth装饰器,列表里可以加多个
def get(self): #这里指的是GET方法
return 'get'
def post(self): #这个是post方法
return 'post'
app.add_url_rule('/index',view_func=IndexViews.as_view('counter'))
view_func里面填的IndexViews是这个类的名称,在as_view里面填是
to_dict
to_dict(),变成字典
from urllib.parse import urlencode,unquote
urlencode接收一个字典,
urlencode(dict)把dict变成GET请求路径形式
unquote()可以把路径的中文字符变回原来的中文字符
取值
4,query_string传过来的数据是以个原生的url路径.
5,jsonify():返回的是json格式的字符串.
6,利用make_response,可以对结果加上set_cookie.headers,del_cookie等操作
模板语法
7,模板语言,
用法python的普通用法一样,在模板里面调用函数的时候要加上(),
也可以在里面用上get方法
flask里面的Markup相当于django的mark_safe
8,模板语法,模板里面可以直接调用视图函数里的函数.
def func(a1,a2):
return a1+a2
9,把一个函数全局化,只需要在他上面加一个装饰器:
@app.template_global()
def func(a1,a2):
return a1+a2
模板中:{{func(1,2)}}
10,过滤条件
@app.template_filter()条件过滤
def func(a1,a2):
return a1+a2
模板中用法:{{1|func(2)}} 前面是第一个参数,后面是第二个参数
session相关
11,session
session本质操作的是字典,
session请求进来,就放在内存,当return以后才会保存到本地数据库.
session相关的配置
app.config
12,app.config里面放的就是flask的所有配置文件
13,闪现 flash
定义:本质和session一样,只不过session里面是可以一直取,而闪现值取一次,就会删除,相当于pop.