1. 程式人生 > >用Python手把手教你搭建一個web框架-flask微框架!

用Python手把手教你搭建一個web框架-flask微框架!

如果大家在學習Python的路上,或者打算學習Python需要學習資料,可以加群571799375,小編將群裡學習資料免費贈送大家喔!

在之前的文章當中,小編已經教過大家怎麼搭建一個Django框架,今天我們來探索另外的一種框架的搭建,這個框架就是web框架-flask微框架啦!首先我們帶著以下的幾個問題來閱讀本文:

1、flask是什麼?有些什麼功能?

2、搭建web框架-flask微框架需要哪些工具和環境?

3、怎麼來搭建?

如果大家在學習Python的路上,或者打算學習Python需要學習資料,可以私信小編髮送1314,小編將免費贈送大家學習資料喔!

1.flask介紹

flask是一款十分輕量級的python Web應用框架,也被認為是一種微框架,我最初喜歡使用是因為flask中提供的那一套使用的註解跟我當時在公司中使用java開發的系統,裡面使用的restful的框架jersey的用法比較像,都十分方便,簡潔,等到我熟悉使用flask框架之後,就挺喜歡這種微框架了,使用方便,配置簡單,也可以進行克重擴充套件,滿足各自的需求,其中在這些裡面還有一個flask restplus,將swagger工具整合到python裡面,在進行相應測試的時候十分方便,這個放到下一期再講。

2.所需工具和環境

這一次執行flask需要使用的flask環境就不在物理機上安裝運行了,直接使用上一篇講述的virtualenv來安裝flask,寫出來的app demo都是依賴在虛擬環境執行的,以下是我們這次演示所需要的python工具和相應包。

  • pycharm 2016
  • virtualenv
  • pytohn 2.7
  • flask

以pycharm作為python ide, virtualenv以python 2.7建立我們的python執行環境,並用 pip install flask,環境搭建基本就完成了,下面是具體流程。

3.搭建flaskApp

3.1 設定虛擬化環境

開啟pycharm,新建工程命名為flaskApp,完成後如下:

 

現在基本是一個空工程,現在開啟控制檯,輸入以下命令,建立虛擬化環境:

 
virtualenv venv 

控制檯輸出完成後,將會在當前目錄中建立一個venv資料夾,裡面是我們執行python的虛擬化環境,在這裡我並沒有指明使用哪種版本的python環境是因為當前系統預設的環境是python2.7,如果想使用python3.0以上可以參考前一篇文章virtualenv介紹及基本使用來完成。

現在要做的第二步就是啟動當前的虛擬化環境,輸入命令source venv/bin/active,完成後控制檯將會如下所示:

 

(venv) localhost:flaskApp xiaxuan$ 表示我們的虛擬化環境啟動成功,但是現在並不是表示當前pycharm中當前工程的工作環境就是venv中的虛擬化環境,這裡要設定pycharm中的python interpreter改為當前專案的執行環境才行。

安裝flask的命令如下:

 
pip install flask 

由於虛擬化環境,所以不需要root許可權,十分方便。

在安裝完相應依賴,設定好python執行環境後,在專案根目錄下新建requirements.txt檔案,這個檔案主要就是記載當前專案安裝了那些依賴,檔案內容如下:

 
flask==0.12Jinja2==2.9.5 

這是目前安裝的依賴,前面是包名,後面是版本號,由於這個的存在我們可以直接在專案沒有安裝這些package之前,將所需的package寫進來,然後在控制檯使用pip install -r requirements.txt,就可以將這些依賴全部安裝進來。

3.2 搭建flask工作目錄

一個完整的flask專案的完整目錄以及基本的如下所示:

 

  • test: 測試檔案的位置
  • templates: html檔案存放位置
  • static: 靜態檔案css和js存放位置
  • views.py: 主要介面編寫檔案,目前是所有的介面都寫在這裡,但是實質上要進行一定的分模組寫介面,這個涉及到的技術是blueprint,這個在後期進行講解。
  • models.py: 物件的定義
  • run.py: 啟動執行檔案
  • config.py: 配置檔案
  • manager.py: 用於啟動程式以及其他的程式任務

以上就是簡單的flask專案基本目錄。

4. 具體程式編寫

4.1原始碼

views.py:

 

上圖提供兩個介面,一個是渲染檢視index.html,一個是返回json結果,較為簡單,而在flask中介面的路由就是一個簡簡單單的註解app.route完成的,指定是哪一種http請求訪問也是非常簡單的,指定methods即可,methods是一個數組,即GET,POST可以同時在一個請求之中,但是我們在寫介面的時候,一般都會區分清楚。

在上面有一個

from app import app,這個需要提一下,這個在app包中的init.py檔案之中宣告的,如下:

 

在這裡聲明瞭app物件,在views中我們引用了app,同時在下面一個檔案run.py中,app起著啟動整個專案的作用,run.py原始碼如下:

 

十分簡單明瞭,app.run()整個專案便執行起來了,在這裡執行的時候,專案是預設的埠為5000,如果需要指定埠,app.run()方法中指定port即可。

4.2 執行

啟動run.py後,控制檯如下:

 

控制檯輸出已經在5000埠上執行起來,現在我們請求http://localhost:5000,轉向介面為:

 

這是先前views.py中的第一個介面,渲染index.html,index.html中的內容就是hello world

訪問第二個介面,url為http://localhost:5000/hello,結果如下:

 

返回json資料。

總結:

  1. flask這種微框架搭建和執行都是一種比較簡單的事情,但是在面對一些併發量比較高的場景的時候,基本就支撐不住了,後續講述如何應對這一種場景。
  2. 在多模組專案編寫的時候,介面就不能放在一個views.py檔案之中,需要分模組存放,這個涉及到了blueprint技術,以後再講這個

文章到此就要告一段落了,希望對各位有所幫助!

如果大家在學習Python的路上,或者打算學習Python需要學習資料,可以加群571799375,群裡學習資料免費贈送大家喔!

本文來自網路,如有侵權,請聯絡小編刪除!