基本概念
初始化
需要給構(gòu)造函數(shù)傳包的名字胸完,此參數(shù)是用于決定程序根目錄的資源文件的位置傲醉。
from flask import Flask
app = Flask(__ name__)
路由和視圖
@app.route('/')
def index():
return '<h1>hello,world</h1>'
路由的動態(tài)部分:
-
/user/<name>
@app. route('/user/< name>') def user( name): return '<h1> Hello, %s!</ h1>' % name
/user/<int:id> 不符合的url會not found
float
-
path
如果訪問地址是 127.0.0.0:5000/https://www.baidu.com,可以匹配地址。
name會是https://www.baidu.com@app. route('/user/<path:name>') def user( name): return '<h1> Hello, %s!</h1>' % name
啟動服務(wù)器
if __name__ == '__main__':
app.run(debug=True)
獲取請求對象 request
request 封裝了http請求
Flask 使用上下文臨時把某些對象變?yōu)槿挚稍L問。
- 請求上下文: request, session(可以存請求的值)
from flask import request @app. route('/') def index(): user_ agent = request.headers.get('User-Agent') return '<p> Your browser is %s</p>' % user_agent
- 程序上下文: current_app, g(每次請求重設(shè))
URL Map
- app.url_map: 能獲取路由映射
- 其中會有/static/<filename>,用于訪問靜態(tài)文件
請求的鉤子:Flask提供的通用函數(shù)
- before_first_request
- before_request
- after_request
- teardown_request
Response
- 200, 請求被成功處理
- 400, 請求無效
@app. route('/') def index(): return '<h1> Bad Request</h1>', 400
- 返回一個值或者一個元祖
- 返回一個response對象
from flask import make_ response app. route('/') def index(): response = make_response('<h1>This document carries a cookie!</h1>') response.set_cookie(' answer', '42') return response
- 重定向 redirect
from flask import redirect @app.route('/') def index(): reture redirect('http://www.abc.com')
Flask擴(kuò)展
Flask-Script
專為Flask開發(fā)的擴(kuò)展在flask.ext命名空間下