基本

设置cookie:

from flask import make_response
response=make_response(‘返回内容’)
response.set_cookie() exipre=None #关闭浏览器时失效

重定向

from flask import redirect return redirect(“url”)

404

from flask import abort abort(404)

渲染模板

return render_template(‘html文件’,传入数据(字典形式))

防止表单攻击

app=Flask(name)
app.config[‘SECRET_KEY’]=’hard to guess string’

request

args

获取请求参数(url里的参数)

from

获取表单数据(post提交的表单参数)

method

请求方式

values

post和get提交的数据总和

cookies

客户端所带的cookie

headers

请求头

path

不带域名,请求路径

full_path

不带域名,带参数的请求路径

url

带域名,带参数的请求路径

response

response=make_response()

创建名为response的response对象
传入的值是可以return的对象

response.set_cookie(‘key’,’value’)

设置cookie

response.headers[‘key’]=’value’

向请求头里面放数据

闪现

flash(‘内容’,category=’key’)

存放flash

get_flashed_messages(category_filter[‘key’])

取出flash

请求扩展

请求来时触发

@app.before_request
def before():
pass

请求结束时触发

@app.after_request
def after(response):
return response

每次触发视图函数时执行

@app.teardown_request
def tear():
pass

运行错误时也会执行(必须关掉debug)

当出现相应错误码时执行

@app.errorhandler(500)
def error_500():
pass

全局标签

@app.template_global
def labe(a,b):
return a+b

可以在前端直接通过{{labe(a,b)}}调用

全局过滤器

@app.template_filter
def filet(a,b,c):
return a+b+c

可以在前端直接通过{{a|filet(b,c)}}调用

数据库连接池

from dbutils.persistent_db import PersistentDB
import pymysql
POOL = PersistentDB(
creator=pymysql, #使用连接数据库的模块
maxusage=None, #一个链接最多被重复使用的次数,None表示无限制
setsession=[], #开始会话前执行的命令列表
ping=0, #ping MySQL服务端检测是否可用
closeable=False, #如果维False时,conn.close()实际上被忽略,供下次使用,在线程关闭时,才会自动关闭链接,如果为True,conn.close()则关闭链接,那么猜词调用时会报错
threadlocal=None, #单线程独享值得对象,用于保存链接对象
host=’127.0.0.1’,
port=3306,
user=’root’,
password=’000000’,
database=’first’,
charset=’utf8’
)
def func():
conn = POOL.connection(shareable=False)
cursor = conn.cursor()
cursor.execute(‘select * from user’)
result = cursor.fetchall()
print(result)
cursor.close()
conn.close()

信号

def xinhao():
pass

signals.request_started.connect(xinhao)

1. template_rendered:模版渲染完成后的信号。

2. before_render_template:模版渲染之前的信号。

3. request_started:模版开始渲染。

4. request_finished:模版渲染完成。

5. request_tearing_down:request对象被销毁的信号。

6. got_request_exception:视图函数发生异常的信号。一般可以监听这个信号,来记录网站异常信息。

7. appcontext_tearing_down:app上下文被销毁的信号。

8. appcontext_pushed:app上下文被推入到栈上的信号。

9. appcontext_popped:app上下文被推出栈中的信号

10. message_flashed:调用了Flask的flashed方法的信号。