1. 程式人生 > >python常用框架之一 Flask (1) 初識Flask

python常用框架之一 Flask (1) 初識Flask

---恢復內容開始---

Flask

Flask誕生於2010年,是Armin ronacher(人名)用 Python 語言基於 Werkzeug 工具箱編寫的輕量級Web開發框架。

Flask 本身相當於一個核心,其他幾乎所有的功能都要用到擴充套件(郵件擴充套件Flask-Mail,使用者認證Flask-Login,資料庫Flask-SQLAlchemy),都需要用第三方的擴充套件來實現。

比如可以用 Flask 擴充套件加入ORM、窗體驗證工具,檔案上傳、身份驗證等。Flask 沒有預設使用的資料庫,你可以選擇 MySQL,也可以用 NoSQL。

其 WSGI 工具箱採用 Werkzeug(路由模組),模板引擎則使用 Jinja2。這兩個也是 Flask 框架的核心。

 

一些Flask框架的基本操作

#建立flask物件 app = Flask(__name__)   #使用flask路由器,指定網址和控制器 @app.route('/') def index():   return "hello world sjgbd kas "   #給文章增加引數功能使用<變數名稱>,路由方法要和路由定義的引數同步 @app.route('/hello/<id>/<name>') def hello(id,name):   print(type(id))   return "hello world ,你的引數是 %s,%s" % (id,name) 注意引數id和name預設為 str
型別,若要指定型別:

@app.route('/hello/<int:id>')

def hello(id):

  return 'hello %d' % id

 

#使用重定向模組來進行跳轉,要先匯入redirect模組 @app.route('/1') def reur1(): return redirect('http://www.baidu.com')括號中填寫的是需要跳轉的路徑網址   #使用url_for方法來實現站內跳轉,引數指定路由方法名稱 @app.route('/2') def reurl_in():   return redirect(url_for('hello'))注意url_ffor 方法括號中寫入的是路由方法名稱,不用新增括號   #使用jsonify模組來讓網頁直接顯示json資料,methods方法是用發來指定傳送方式 @app.route('/json',methods=['POST']) def re_json():   json_dict = {'id':10,'title':'flask應用','content':'flask格式化'} #使用jsonfy來將定義好的資料轉換成json格式   return jsonify(json_dict)   捕獲異常  errorhandler 裝飾器
#flask統一對狀態碼捕獲異常,用來進行友好提示,提高使用者體驗 @app.errorhandler(405)        def internal_server_error(e):   return "這個介面不能被get請求到,只能post請求"   #flask統一對狀態碼捕獲異常,用來進行友好提示,提高使用者體驗 @app.errorhandler(404) def internal_server_error(e):   return "網頁不存在或已被刪除"   請求鉤子

在客戶端和伺服器互動的過程中,有些準備工作或掃尾工作需要處理,

比如: 在請求開始時,建立資料庫連線; 在請求開始時,根據需求進行許可權校驗;

在請求結束時,指定資料的互動格式;

為了讓每個檢視函式避免編寫重複功能的程式碼,Flask提供了通用設施的功能,即請求鉤子。

請求鉤子是通過裝飾器的形式實現,Flask支援如下四種請求鉤子:

 

#在第一次請求之前呼叫 @app.before_first_request def before_first_request(): print("這是第一次請求之前呼叫的方法")
#在每一次請求之前呼叫 @app.before_request def before_request(): print("每一次請求之前呼叫這個")
#在請求之後呼叫的方法,必須傳響應引數,然後將響應內容返回 @app.after_request def after_request(response): print("在請求之後呼叫這個方法") return response
#在請求之後呼叫伺服器出現的錯誤資訊 @app.teardown_request def teardown_request(e): print("列印伺服器出現的錯誤是 %s " % str(e))     程式載入配置的三種方式: 1#從配置檔案裡來載入配置 # app.config.from_pyfile('config.ini') 建立配置檔案 config.ini,在配置檔案中新增配置 執行測試,在程式碼儲存後直接儲存 會自動重啟服務
2#從環境變數中來載入配置 # app.config.from_envvar('app_config') 這是在環境變數中設定配置通過程式碼來載入配置
3#從配置物件來載入配置、 這個是通過寫程式碼,建立一個類來配置物件 #建立一個配置類 class Config(object):   DEBUG = True   JSON_AS_ASCII = False # app.config.from_object(Config)      

 

---恢復內容結束---