天天看點

Flask一步步搭建web應用

1.flask介紹

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

2.所需工具和環境

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

Flask一步步搭建web應用

pycharm 2016

Flask一步步搭建web應用

virtualenv

Flask一步步搭建web應用

pytohn 2.7

Flask一步步搭建web應用

flask

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

3.搭建flaskApp

3.1 設定虛拟化環境

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

Flask一步步搭建web應用

現在基本是一個空工程,現在打開控制台,輸入以下指令,建立虛拟化環境:

現在要做的第二步就是啟動目前的虛拟化環境,輸入指令source venv/bin/active,完成後控制台将會如下所示:

Flask一步步搭建web應用

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

安裝flask的指令如下:

由于虛拟化環境,是以不需要root權限,十分友善。

在安裝完相應依賴,設定好python運作環境後,在項目根目錄下建立requirements.txt檔案,這個檔案主要就是記載目前項目安裝了那些依賴,檔案内容如下:

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

3.2 搭建flask工作目錄

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

Flask一步步搭建web應用
Flask一步步搭建web應用

test: 測試檔案的位置

Flask一步步搭建web應用

templates: html檔案存放位置

Flask一步步搭建web應用

static: 靜态檔案css和js存放位置

Flask一步步搭建web應用

views.py: 主要接口編寫檔案,目前是所有的接口都寫在這裡,但是實質上要進行一定的分子產品寫接口,這個涉及到的技術是blueprint,這個在後期進行講解。

Flask一步步搭建web應用

models.py: 對象的定義

Flask一步步搭建web應用

run.py: 啟動運作檔案

Flask一步步搭建web應用

config.py: 配置檔案

Flask一步步搭建web應用

manager.py: 用于啟動程式以及其他的程式任務

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

4. 具體程式編寫

4.1源碼

views.py:

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

在上面有一個

<code>from app import app</code>,這個需要提一下,這個在app包中的init.py檔案之中聲明的,如下:

在這裡聲明了app對象,在views中我們引用了app,同時在下面一個檔案run.py中,app起着啟動整個項目的作用,run.py源碼如下:

十分簡單明了,app.run()整個項目便運作起來了,在這裡運作的時候,項目是預設的端口為5000,如果需要指定端口,app.run()方法中指定port即可。

4.2 運作

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

Flask一步步搭建web應用
Flask一步步搭建web應用

這是先前views.py中的第一個接口,渲染index.html,index.html中的内容就是hello world。

Flask一步步搭建web應用

傳回json資料。

5. 綜上

Flask一步步搭建web應用

flask這種微架構搭建和運作都是一種比較簡單的事情,但是在面對一些并發量比較高的場景的時候,基本就支撐不住了,後續講述如何應對這一種場景。

Flask一步步搭建web應用

在多子產品項目編寫的時候,接口就不能放在一個views.py檔案之中,需要分子產品存放,這個涉及到了blueprint技術,在下一期中将講述這個。

原文釋出時間為:2017-03-14

本文作者:夏軒