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

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

一、flask是什麼?有些什麼功能?html

二、搭建web框架-flask微框架須要哪些工具和環境?java

三、怎麼來搭建?python


 

1.flask介紹web

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

2.所需工具和環境flask

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

pycharm 2016restful

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的命令以下:

pipinstallflask

因爲虛擬化環境,因此不須要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數據。

總結:

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

在多模塊項目編寫的時候,接口就不能放在一個views.py文件之中,須要分模塊存放,這個涉及到了blueprint技術,之後再講這個

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

 

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

相關文章
相關標籤/搜索