訪客留言簿

星期四, 3月 14, 2013

[python] Flask 學習筆記 (3) 測試

前言

如果你已經安裝好 Python 及 Flask,是該時候測試一下 Flask 有沒有正常運作了。另外這篇只會教你 Hello world! 而已。

建立一個 Flask 的 py 檔

還記得第一篇學習筆記說的,Flask 程式碼,需要儲存成 py 檔案,讓 Python 執行嗎?接下來你就要寫你的第一個 Flask 文件。

要建立第一份 Flask 文件,請先開啟你的純文字編輯器(比如說我就是用 MadEdit 為主要編輯器),貼上以下的文字。

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
return 'Hello World!'

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

接著儲存這份文件(比如說存到你的 project 目錄去),檔名請命名成 hello.py 或是 xxx.py,但絕對不要命名成 flask.py,以免跟 Flask 本身衝突到。

然後準備執行這份 py 文件吧。

執行你的第一個 Flask

如果你有從我的第二篇學習筆記看過來的話,那你應該還在 venv 模式下,這時直接輸入以下指令,就會執行 Flask 程式碼了。

python hello.py

如果你是已經先關閉掉文字終端機,或是離開 venv 模式下的,請繼續往下看。(以下皆以 Windows 為例說明)

確認 project 目錄

Windows 的話,在此假設位在 C:\Users\[你的帳號]\myproject,hello.py 也是放在這底下。

重開文字終端機

Windows 下,請按「Windows 鍵 + r 鍵」,在「執行」視窗中,輸入 cmd,並按「確定」。

切進 project 目錄

Windows 下,打開文字終端機後,預設的工作目錄是在 C:\Users\[你的帳號],請輸入以下指令,進入 myproject 目錄下。

cd myproject

開啟 venv 模式

Windows 下,請輸入以下指令,進入 venv 模式,也就是進入你的虛擬工作環境。

venv\scripts\activate

執行 hello.py

進入 venv 模式後,請再輸入以下指令,就會執行 hello.py 了。

python hello.py

如何確認 hello.py 的執行結果

hello.py 只是會秀出 Hello world! 的一個程式碼,如果你有正確執行的話,應該會看到文字終端機跑出下面的訊息。

* Running on http://127.0.0.1:5000/

上面的訊息,就代表你的 hello.py 已經在執行了。

接著只要開瀏覽器(你閱讀這網頁所用的程式,簡單說直接點擊下面的超連結就好),連線到 http://127.0.0.1:5000/,就能看見執行的結果,而文字終端機那,也會顯示如下的訊息。(中間的時間視你讀取的時間而定)

127.0.0.1 - - [14/Mar/2013 16:44:57] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [14/Mar/2013 16:44:57] "GET /favicon.ico HTTP/1.1" 404 -

要關閉 hello.py 的話,請按 Ctrl-c 兩鍵即可。

從網路上檢視你的 Flask 運作是否正常

要像其他伺服器一樣,讓你的 Flask 程式「上線」,要處理的東西會挺複雜的,不過大致知道下面幾點就好。

  1. Flask 本身一執行後,就是個 Server 程式了。(不需安裝 Appach 或 WAMP、LAMP)
  2. hello.py 文件末段app.run() 要改成 app.run(host='0.0.0.0') 並儲存。(文字終端機下記得先按 Ctrl-c 關掉 hello.py 再重跑)
  3. 防火牆要設定讓 Python 可以連進連出
  4. 無線基地台的 DHCP 伺服器跟虛擬伺服器要設定好一個對內的虛擬 IP 給你的電腦(比如說 192.168.1.2 之類的,記得要先查一下你的 MAC 位址,然後對內的 port 是 5000,對外的 port 設 8000 以上即可)
  5. 利用 What Is My IP address? 查你的對外實體 IP 為何,瀏覽器要連到這個實體 IP 才行,比如說 1.1.1.1:8000 這類的

0 comments:

 

本站著作(不包含圖片、影音以及回應留言)係採用 Creative Commons 姓名標示-非商業性-相同方式分享 2.5 台灣 (中華民國) 授權條款授權