Flask 環境配置
你的應用程序可能需要大量的軟件包才能正常的工作。如果都不需要 Flask 包的話,你有可能讀錯了教程。當應用程序運行的時候,你的應用程序的 環境 基本上是所有一切事情的根基。我們是幸運的,因為有許多方式使得我們能夠輕松地管理我們的環境。
使用 virtualenv 管理你的環境
virtualenv 是用于在所謂 虛擬環境 中隔離你的應用程序的一個工具。一個虛擬環境是包含了你的應用依賴的軟件的一個目錄。一個虛擬環境也能夠改變你的環境變量以維持你的開發環境包含的環境變量。不用下載包,像 Flask, 到你系統級或者用戶級的包目錄,我們可以下載它們到一個獨立的并且只為我們應用使用的目錄。這就可以很容易地指定使用的 Python 的版本以及每一個項目依賴的包。
Virtualenv 也可以讓你在不同的項目中使用相同的包的不同版本。這種靈活性可能是十分重要的,如果你正使用一個舊的系統并且它的上面有幾個項目需要不同的版本。
當使用 virtualenv 的時候,你通常只需要安裝幾個的 Python 包在你的系統上。其中一個就是 virtualenv 本身。你可以使用 Pip 來安裝 virtualenv 包。
一旦在你的系統上安裝了 virtualenv,你可以開始創建虛擬環境。前往你項目所在的目錄并且運行 virtualenv 命令。它需要一個參數,這個參數就是虛擬環境的目標目錄。下面展示了它大概的樣子。
$ virtualenv venvNew python executable in venv/bin/pythonInstalling Setuptools...........[...].....done.Installing Pip..................[...].....done.
virtualenv 創建一個新的目錄,依賴包將會安裝到這個目錄中。
一旦新的虛擬環境已經創建,你必須激活它,通過發動創建在虛擬環境里的 bin/activate 腳本。
$ which python/usr/local/bin/python$ source venv/bin/activate(venv)$ which python/Users/robert/Code/myapp/venv/bin/python
bin/activate 腳本對你的 shell 環境變量進行一些改變以致一切都指向新的虛擬環境而不是全局系統。你可以在上面的代碼塊中看到效果。激活后,python 命令指向虛擬環境的中 Python 的 bin 目錄。當虛擬環境激活后,使用 Pip 安裝的依賴包會被下載到虛擬環境中而不是全局系統。
你可能會注意到 shell 中的提示符也已經改變了。virtualenv 預先設定目前激活虛擬環境的名稱,因此你會知道你不是在全局系統上工作。
你可以通過運行 deactivate 命令停用你的虛擬環境。
(venv)$ deactivate
virtualenvwrapper
virtualenvwrapper 是一個用于管理 virtualenv 創建的虛擬環境的軟件包。我不想提到這個工具,直到你看到了 virtualenv 的基礎知識以便你理解它改善了什么以及為什么我們應該使用它。
上一部分創建的虛擬環境目錄會給你的項目庫帶來一些混亂。你只需要激活虛擬環境和它進行交互,但是它不應該出現在版本控制中,因此這個虛擬環境目錄就不應該在這里。解決方案就是使用 virtualenvwrapper。這個軟件包會把所有你的虛擬環境放在一個目錄的方式,通常默認是在 ~/.virtualenvs/。
要安裝 virtualenvwrapper,請按照文檔中的說明,文檔位于 http://virtualenvwrapper.readthedocs.org/en/latest/install.html 。
請確保在安裝 virtualenvwrapper 之前你已經停用所有的虛擬環境。你需要把它安裝在全局系統中,而不是虛擬環境中。
現在,不用運行 virtualenv 來創建一個環境,你需要運行 mkvirtualenv:
$ mkvirtualenv rocketNew python executable in rocket/bin/pythonInstalling setuptools...........[...].....done.Installing pip..................[...].....done.(rocket)$
(rocket)$ pip freeze > requirements.txt$ workon fresh-env(fresh-env)$ pip install -r requirements.txt[...]Successfully installed flask Werkzeug Jinja2 itsdangerous markupsafeCleaning up...(fresh-env)$
*.pycinstance/
Flask 工程配置
當你學習 Flask 的時候,配置看起來很簡單。你只要在 config.py 中定義一些變量接著一切就能工作了。當你開始必須要管理生產應用的配置的時候,這些簡單性開始消失了。你可能需要保護 API 密鑰以及為不同的環境使用不同的配置(例如,開發和生產環境)。在本章節中我們會介紹 Flask 一些先進的功能,它可以使得管理配置容易些。
簡單的例子
一個簡單的應用程序可能不會需要任何這些復雜的功能。你可能只需要把 config.py 放在你的倉庫/版本庫的根目錄并且在 app.py 或者 yourapp///_init//_.py 中加載它。
config.py 文件中應該每行包含一個配置變量賦值。當你的應用程序初始化的時候,在 config.py 中的配置變量用于配置 Flask 和它的擴展并且它們能夠通過 app.config 字典訪問到
主站蜘蛛池模板:
庆阳市|
临潭县|
灵寿县|
鄂伦春自治旗|
太湖县|
新化县|
福鼎市|
岢岚县|
合阳县|
永顺县|
嘉峪关市|
铜陵市|
唐河县|
新丰县|
道孚县|
金沙县|
德昌县|
贡嘎县|
桑日县|
淳安县|
常山县|
历史|
晋宁县|
临城县|
内丘县|
安福县|
安康市|
河间市|
濮阳县|
石泉县|
荥经县|
德清县|
西平县|
郓城县|
沙坪坝区|
张家界市|
丰原市|
临沭县|
共和县|
庐江县|
义马市|