flask學習2
8.請求鉤子
8.1 before_first_request
#再在第一次請求之前呼叫,可以做初始化操作
@app.before_first_request
def before_first_request():
print('--------->before_first_request')
8.2 before_request
@app.before_request
def before_request():
print('--------->before_request')
#在每一次請求之前呼叫,請求已經到來,可以再這個方法中做請求校驗
#如果請求校驗不通過,直接在當前方法中進行響應,直接return之後,不需要再進行檢視函式的處理
8.3 after_request
@app.after_request
def after_request(response):
print('---------->after_request')
response.headers['Content-Tpye']='application/json'
return response
沒有異常的情況下,在執行完檢視函式之後呼叫,會將檢視函式所生成的響應傳入,做相關的比如json新增頭資訊
8.4 teardown_request
@app.teardown_request
def tear_down(e):
print('---------->teardown')
即使有異常,在每次請求後執行,接收的引數為異常資訊
9.請求上下文引數
from flask import Flask,request
屬性 | 說明 | 型別 |
---|---|---|
data | 記錄請求的資料,並轉換為字串 | * |
form | 記錄請求中的表單資料 | MultiDict |
args | 記錄請求中的查詢引數 | MultiDict |
cookies | 記錄請求中的cookie資訊 | Dict |
headers | 記錄請求中的報文頭 | EnvironHeaders |
method | 記錄請求使用的HTTP方法 | GET/POST |
url | 記錄請求的URL地址 | string |
files | 記錄請求上傳的檔案 | * |
query_string | 記錄請求中的查詢引數 | bytes |
注意:
query_string 獲取的引數是bytes型別,如果需要取出資料,需要進行下一步處理
args 獲取的引數是類字典型別,直接用get獲取
10.狀態保持
10.1 cookie
from flask import Flask,make_response,request
10.1.1 設定cookie
@app.route('/index')
def index():
response = make_response('index')
response.set_cookie('username','xx',max_age=3600)
return response
max_age 為最大存在時間
10.1.2 查詢cookie
@app.route('/cookies')
def get_cookie():
return request.cookies.get('username','None')
10.1.3 刪除cookie
@app.route('/deleting')
def del_cookie():
response = make_response('delete cookie')
response.delete_cookie('username')
return response
10.2 session
from flask import Flask,make_response,session
10.2.1 設定金鑰
class Config(object):
SECRET_KEY='kasjbd'
app.config.from_object(Config)
10.2.2 設定session
@app.route('/index')
def index():
session['username']='xxxx'
response = make_response('index')
return response
10.2.3 檢視session
@app.route('/session')
def get_session():
return session.get('username')
11.應用上下文
from flask import Flask,current_app,g,make_response
app=Flask(__name__)
@app.route('/index')
def index():
print(current_app)
print(current_app.name)
print(current_app.config)
current_app.test = '這是測試資料'
response = make_response('index')
return response
@app.route('/index123')
def index123():
print('這是通過current_app傳遞的資料',current_app.test)
response = make_response('index')
return response
if __name__ == '__main__':
app.run(debug=True)
#請求上下文request session:儲存這客戶端與伺服器之問互動的資料
#應用上下文 current _app g flask程式在執行的過程中﹐儲存的一些配置資訊﹐程式名﹐資料庫連結等
12.在命令列中啟動flask
from flask import Flask
from flask_script import Manager
app=Flask(__name__)
manage =Manager(app)
if __name__ == '__main__':
manage.run()
相關文章
- Flask學習Flask
- flask學習(一)Flask
- flask學習1Flask
- python-flask學習PythonFlask
- Flask學習筆記Flask筆記
- Flask學習中出現jinja2.exceptions.UndefinedError: ‘form‘ is undefinedFlaskExceptionUndefinedErrorORM
- 學Flask框架有什麼用?為什麼學習Flask?Flask框架
- flask學習筆記之blueprintFlask筆記
- Flask學習之旅--資料庫Flask資料庫
- CTF-flask模板注入學習Flask
- python Flask框架學習——Response響應PythonFlask框架
- flask:flask模板——使用Jinja2Flask
- Flask入門學習---初步瞭解模板Flask
- Flask學習之旅--簡易留言板Flask
- Python教程系列之Flask框架的學習PythonFlask框架
- flask入門2Flask
- 《Flask 入門教程》 第 2 章:Hello, Flask!Flask
- Flask之Jinja2模板與Flask-WTFFlask
- flask文件學習筆記1-快速入門Flask筆記
- 基於Keras和Gunicorn+Flask部署深度學習模型KerasFlask深度學習模型
- [譯] 使用 Python Flask 框架釋出機器學習 APIPythonFlask框架機器學習API
- Exploring SSTI in Flask/Jinja2Flask
- Docker學習2Docker
- Qt學習2QT
- python學習2Python
- odoo學習-2Odoo
- flask分頁功能:基於flask-sqlalchemy和jinja2FlaskSQL
- 強化學習-學習筆記2 | 價值學習強化學習筆記
- Python學習之Django和Flask框架有什麼區別?PythonDjangoFlask框架
- Django和Flask框架有什麼區別?Python學習分享DjangoFlask框架Python
- Flask 使用Jinja2模板引擎Flask
- 機器學習-2機器學習
- 4/2學習程序
- Java ASM學習(2)JavaASM
- 機器學習(2)機器學習
- 【caffe2從頭學】:2.學習caffe2
- Flask(8)- jinja2 模板入門Flask
- Flask中Jinja2是什麼?Flask