flask之旅: 開發前環境準備

小諾哥發表於2019-01-20

Falsk簡介

Flask是非常流行的Python Web框架,流行的主要原因有:

- 文件齊全, 上手快
- 本身核心足夠精簡, 有非常好的擴充套件機制和第三方擴充套件環境(熟悉node的童鞋類比Express/Koa)
- 社群活躍度高
- 開發者自由有很大的選擇空間
複製程式碼

Falsk主要依賴三個庫:

- Jinja2: 預設的模班引擎
- Werkzeug: 一個包含WSGI, 路由, 除錯的工具集
- Itsdangerous: 基於Django的簽名模組

複製程式碼

安裝Python

正確的安裝python

安裝pyenv

Python版本管理神器-pyenv

安裝pipenv

pipenv被譽為新一代Python專案環境與依賴管理工具。

flask的最小應用

想看英文文件的可以閱讀Basic Usage of Pipenv

  • 建立一個工作目錄, 使用pipenv shell.
  • 安裝flask, 通過pipenv install flask
  • pycharm基本配置
這裡主要是配置你的開發環境, 你需要配置對應專案的直譯器
複製程式碼

直譯器

  • 專案的目錄結構以及最小的flask應用

flask應用

# 匯入Flask類, 該類的例項作為我們的WSGI應用
from flask import Flask

# 建立例項, 傳入應用模組名字或者包名, 這個引數是必須的
# 一般傳入__name__來確定程式的根目錄
app = Flask(__name__)

# 通過路由裝飾器, 把路由與檢視進行對映
@app.route('/')
def hello_world():
    return 'Hello, World!'

# 如果是其他檔案引用該模組檔案是不會執行app.run()
if __name__ == '__main__':
    app.run()

複製程式碼

啟動之後你在瀏覽器能看到:

demo

值得注意的是,預設的app.run啟動服務後, Flask只會監聽虛擬機器的本地127.0.0.1這個地址, 埠為5000。 這個時候我們用ip去訪問是會報錯的,所以我們最好修改下host, port。

你去檢視app.run()的原始碼可以看到:

def run(self, host=None, port=None, debug=None,
            load_dotenv=True, **options):
複製程式碼

所以我們只需要這樣改:

# 0.0.0.0表示監聽所有地址, 這樣其他電腦就可以訪問你的程式了。
if __name__ == '__main__':
    app.run(host='0.0.0.0', port='9999')
複製程式碼

除錯模式

上面原始碼中我們發現還可以傳遞一個debug選項, 相信大多數人應該猜到了除錯。 是的設定debug為True, 即開啟除錯模式。

開啟除錯模式有如下好處:

  1. 伺服器在程式碼修改後自動重新載入(node有nodemon)
  2. 發生錯誤時會提供一個獲得錯誤上下文執行程式碼的除錯頁面

開啟除錯模式的方法有:

# 在應用物件上設定
app.debug = True

# 作為run引數傳入
app.run(debug=True)
複製程式碼

值得注意的是除錯模式僅用於開發環境, 生產環境我們一般使用Nginx+uWSGI。

相關文章