1. 程式人生 > >人生苦短,我用Python(四)—通過Flask結合Bootstrap框架快速搭建Web應用-1

人生苦短,我用Python(四)—通過Flask結合Bootstrap框架快速搭建Web應用-1

寫在前面:

Flask是一個給予Python開發,依賴jinja2模板和Werkzeug WSGI服務的一個微型框架。Werkzeug用來處理Socket服務,其在Flask中被用於接受和處理http請求;Jinja2被用來對模板進行處理,將模板和資料進行渲染,返回給使用者的瀏覽器。

Bootstrap是由Twitter推出的一個用於前端開發的開源工具包,給予HTML、CSS、JavaScriot,提供簡潔、直觀、強悍的前端開發框架,是目前最受環境的前端框架。

好吧,其實以上,作者也不是很懂,讓我們直接開始吧。


開始動手:

可以通過Pycharm建立Flask專案,Pycharm會自動幫你安裝Flask以及其他依賴的程式,併為你設計程式的目錄架構

第一段Flask程式:

專案建立完成以後,我們會發現Pycharm以貼心的幫你寫了好了一段python程式,下面對其中的一些部分,做簡要的解釋:

[email protected]('/')

當客戶端將請求傳送給web伺服器時,web伺服器將請求傳送給Flask程式,這時Flask程式需要知道對應客戶端URL請求,需要執行哪些程式碼、實現什麼功能。這時,需要將URL與Python函式,形成一個對映關係。

使用flask提供的app.route()修飾器,可以實現以上功能。

2.def hello_world():

這段不用多說,這是一段python函式,這段函式的功能是返回Hello World!這段字串

於是在上文中的這段程式碼將url“/”與hello_world這段函式形成了對應關係

實現了,當客戶端請求的url為“/”時,返回字串“Hello World!”的功能,讓我們將程式跑起來試一下

我們可以看到,程式會提示你當前程式執行在http://127.0.0.1:5000/

埠5000是Flask預設執行的埠。當然,Flask也支援對工作的埠進行修改,修改的方法在後文中會提到。

我們開啟http://127.0.0.1:5000/開一下效果:

實現URL與Python函式的對應

我們可以看到,當請求的URL為"/"時,返回“Hello World!”字串,實現了我們上述提到的功能。

那麼,我們嘗試新建一段URL與python函式的對應關係,試一下:

@app.route('/welcome')

def welcome():

    return 'Welcome to My World!'

將URL“/welcome”與welcome()函式,進行對應,返回“Welcome to My World!”字串。執行程式試一下:

瀏覽器輸入127.0.0.1:5000/welcome

我們可以看到,這裡實現了我們想要的結果。

於是,我們可以利用URL與python函式的對應關係,當url請求為不同的請求時,後臺呼叫不同的python函式,實現我們想要的功能

例如當用戶請求URL“/1+1”對應執行,1+1

@app.route('/1+1')

def calcu():

     i=1+1

     return str(i)

結果如下圖:

更改Flask提供服務的IP地址和埠

要指定Flask程式提供的服務工作的IP地址和埠,可以通過一下兩個方式:

  • 在app.run()中指定,修改host和port引數,網上也有很多用這種方式進行修改的,但在pycharm中,修改不生效

  • 通過命令列執行:flask run --host 127.0.0.1 --port 1234

通過Flask返回模板

在這裡,我們可以通過render_template函式,實現Flask返回html檔案

render_template實際是通過的Jinja2渲染的模板

首先在template中建立html檔案:

同樣,在通過Pycharm建立HTML檔案的時候,會預先將HTML檔案的格式預置好

接著,修改部分程式碼,將URL“/welcome”與返回該模板進行對應:

from flask import Flask,render_template

@app.route('/welcome')

def welcome():

  return render_template('test.html')

我們看一下實際效果:


總結

我們可以通過這樣的方式,將使用者請求不同的URL時,返回不同的html模板

於是在這裡我們將Flask與Bootstrap進行結合,Flask負責處理使用者請求,和一些python程式的呼叫、Bootsrtap框架提供HTML檔案,為使用者提供頁面展示。

下一篇,我們講講Bootstrap的一些使用方法