Flask 學習筆記(1) --- 搭建你的第一個 web server

開發環境

  • Ubuntu 16.04

    Python 3.5

    Flask 1.0.2

  • 命令如下

    sudo apt-get upgrade
    sudo apt-get install python3-setuptools
    sudo apt-get install python3-dev
    sudo apt-get install python3-pip
    sudo pip3 install pip --upgrade
    sudo pip3 install flask


第一個 server

  • 首先我們創建一個文件夾 webapp, 並在其中新建一個 main.py 文件

    mkdir ~/webapp
    cd ~/webapp
    touch main.py
  • 接着, 我們打開 main.py, 按照 Flask Quickstart 的示例, 開始編寫第一個 server

    from flask import Flask
    app = Flask(__name__)
    
    @app.route('/', methods=['GET'])
    # methods 默認是 GET 因此可以簡寫爲如下形式
    # @app.route('/')
    def hello():
        return 'Hello'
    
    if __name__ == '__main__':
        app.run(host='0.0.0.0', port=8080, debug=True)

    保存文件後, 在 Terminal 中輸入如下命令, 即可運行 webapp. 我們在瀏覽器中輸入 http://server_ip:8080 即可訪問網站, 頁面的內容就是 Hello

    python3 main.py


編寫 IndexHandler

  • 在上一節中, 我們使用了 @ decorator 來指定某個路由對應的處理函數, 這樣的寫法非常方便. 同時, 我們也可以編寫我們自己的 Handler 來處理各個不同的頁面(路徑). 比如, 對於首頁 Index, 即 http://server_ip:8080/, 我們可以編寫一個 class IndexHandler, 注意這是一個 MethodView 的子類, 也就是說這是一個 View Handler

    from flask import Flask
    from flask.views import MethodView
    app = Flask(__name__)
    
    class IndexHandler(MethodView):
        def __init__(self, name):
            print(name)
    
        def get(self):
            return 'It is a GET request'
    
        def post(self):
            return 'It is a POST request'
    
    if __name__ == '__main__':
        app.add_url_rule('/', view_func=IndexHandler.as_view('index'))
        app.run(port=8080, host='0.0.0.0', debug=True)

    根據 flask docs, 傳給 as_view() 的參數 name 會轉發給構造函數, 我們暫時用不到這個參數 name , 但是爲了保持命名的一致性, 我們將其設置爲 index


  • 保存文件後, 在 Terminal 中輸入如下命令, 即可運行 webapp. 我們在瀏覽器中輸入 http://server_ip:8080 即可訪問網站, 頁面的內容是 It is a GET request

    python3 main.py


參考資料

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章