Python的web開發

zzzypp發表於2018-08-21

python的web開發有2個很有名的框架,那就是Flask和django,Flask相對於django更加輕便簡潔,非常適合小型網站,話不多說,我們來個hello world!

首先建立一個資料夾webapp。
然後從終端進入webapp資料夾,用我上一篇部落格Python工具之virtualenv說到的工具來建立一個虛擬環境,避免系統環境的干擾。

virtualenv venv

這樣我們便建立了一個虛擬環境,虛擬環境的具體使用就不細說了,請看我上一篇Python工具之virtualenv

接著我們在虛擬環境安裝一下Flask

pip install flask

然後在該資料夾下新建python檔案app.py,檔案結構:

-/webapp
    |-venv
    -app.py

在app.py輸入:

from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
    return '<h1>Hello World!</h1>'

if __name__ == '__main__':
    app.run(debug=True) # 如果你啟用了除錯支援,伺服器會在程式碼修改後自動重新載入,並在發生錯誤時提供一個相當有用的偵錯程式。

好了,就是這麼簡單,接著我們把程式跑起來

python app.py
Running on http://127.0.0.1:5000/

flask預設會在5000埠進行監聽,如果你要修改,修改app.run()方法的引數即可。

# 指定埠和ip
app.run(host='0.0.0.0', port=5000, debug=True)

現在訪問http://127.0.0.1:5000/ 你就會看見hello world的網頁了。

就是這麼簡單!

有人就說了,難道我返回的網頁要在字串裡面寫?這當然不可能,Flaks要是隻有這點能力,你怎麼可能還見得到它。

好,接下來,我們返回一個html網頁檔案。

我們在webapp下新建一個資料夾templates,裡面放入hello.html網頁,結構如下

|-/webapp
    |-/templates
        |-hello.html
    |-venv
    |-app.py

在hello.html中輸入下面內容

<h1>Hello World!</h1>

接著回到app.py中,新增下面的內容:

from flask import Flask, render_template

app = Flask(__name__, template_folder='templates')

@app.route('/')
def index():
    return render_template('hello.html')

if __name__ == '__main__':
    app.run(debug=True) 

我們馬上來執行該檔案python app.py,在瀏覽器中輸入http://127.0.0.1:5000/你就又可以看到偉大的hello world!了。

這裡我再來解釋下上面的程式碼:


# 引入flask,render_template。render_template是用來渲染html檔案的
from flask import Flask, render_template

# template_folder是指定html檔案在哪個資料夾裡面
app = Flask(__name__, template_folder='templates')

# app.route指的是路由,這裡的意思是把根目錄指向index()這個函式,index()即檢視函式
@app.route('/')
def index():
    # 渲染並返回模板檔案
    return render_template('hello.html')

if __name__ == '__main__':
    app.run(debug=True) 

相關文章