Python Flask學習筆記之Hello World
安裝virtualenv,配置Flask開發環境
virtualenv
虛擬環境是Python
解釋器的一個私有副本,在這個環境中可以安裝私有包,而且不會影響系統中安裝到全局Python
解釋器。虛擬環境非常有用,可以在系統的Python
解釋器中避免包的混亂和版本的沖突,為每個程序單獨創建虛擬環境,可以保證程序只能訪問虛擬環境中的包從而保持全局解釋器的干凈整潔。
- 安裝
sudo apt-get install python-virtualenv
- 創建項目目錄
mkdir Blog ; cd Blog
- 查看版本
virtualenv --version
- 命名項目的虛擬環境
virtualenv venv
- 指定
python
版本
virtualenv -p /usr/bin/python2 virtualenv‘s name
- 激活虛擬環境
. venv/bin/activate
環境激活后命令提示符發生改變(venv) $
。
- 退出虛擬環境
deactivate
編寫Hello World
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run()
運行結果如下
* Serving Flask app "hello" (lazy loading)
* Environment: production
WARNING: Do not use the development server in a production environment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
上面使用Flask
官方文檔demo
- 初始化
from flask import Flask
app = Flask(__name__)
首先導入了類Flask
,第一個參數是應用模塊的名稱。如果使用的是單一的模塊,第一個參數應該使用 __name__
。
- 路由和視圖函數
@app.route('/')
def hello_world():
return 'Hello World!'
程序實例需要知道對每個URL
請求運行哪些代碼,所以保存了一個URL
到Python
函數到映射關系。處理URL
和函數之間關系的程序成為路由。Flask
使用程序實例提供到app.route
修飾器,把修飾的函數注冊為路由。接下來定義一個函數,該函數名也是用來給特定函數生成URL
,並且返回我們想要顯示在用戶瀏覽器上的信息。
- 啟動服務器
if __name__ == '__main__':
app.run()
最后我們用函數run()
啟動本地服務器來運行我們的應用。if __name__ == '__main__':
確保服務器只會在該腳本被Python
解釋器直接執行的時候才會運行,而不是作為模塊導入的時候。
改寫程序,輸出Hello Mark
創建應用工程目錄
mkdir app
在app
目錄下創建文件__init__.py
、routes.py
和manage.py
。在Python
程序中,包含__init__.py
文件的子目錄被視為一個可導入的包。routes.py
定義視圖函數的代碼。manage.py
導入應用程序實例。
# __init__.py
from flask import Flask
app = Flask(__name__)
from app import routes
# routes.py
from app import app
@app.route('/')
@app.route('/index')
def index():
return "Hello, World!"
@app.route('/user/<name>')
def user(name):
return '<h1>Hello, %s</h1>' % name
manage.py
from app import app
設置FLASK_APP
環境變量
export FLASK_APP=manage.py
程序目錄
Project
venv
app
__init__.py
routes.py
manage.py
運行
參考文檔:
http://flask.pocoo.org/
http://www.pythondoc.com/flask/index.html