-
pip:安裝python包的工具,創建虛擬環境,可以擁有一個獨立的python解釋器環境。虛擬環境通過Virtualenv來創建,但是爲了更方便管理虛擬環境和依賴包,使用繼承了virtualenv的pipevn。
-
在項目目錄下,pipenv install創建一個虛擬環境,會在當前環境下創建一個文件夾,其中包含隔離的python解釋器環境,並安裝好pip wheel setuptools等基礎包,默認放在C:\Users<**>.virtualenvs
-
pipenv 會自動幫我們管理虛擬環境,所以在執行pipenv install安裝包時,無論是否激活虛擬環境,都會安裝到虛擬環境中,只有需要在全局環境下安裝、更新、刪除包,纔會使用pip
-
在pycharm編輯器中可以設置在虛擬環境中運行File-settings
括號中的就是虛擬環境 -
項目的結構:
-
flask run --port=8000 改變默認端口
.flaskenv設置爲開發環境: FLASK_ENV=development 會開啓所有支持開發的特性,開發環境下,debug mode 將會被開啓,啓動程序會自動激活內置的調試器debugger和重載器reloading,會在開發帶來很大的幫忙 -
app.route() 裏的參數成爲url規則,而不稱爲url
url_for() 第一個參數爲端點(endpoint)值,端點用來標記一個視圖函數以及對應的url規則
@app.route('/')
def index():
return '<h1>Hello, World!</h1>'
# 遞用url_for('index') 可獲得對應的url,即'/'
# 如果url有動態部分:
@app.route('/greet', defaults={'name': 'Programmer'})
@app.route('/greet/<name>')
def greet(name):
return '<h1>Hello, %s!</h1>' % name
url_for(‘greet’, name=‘Jack’) 會得到/greet/Jack,生成的是相對的url(內部)
import click
from flask import Flask
app = Flask(__name__)
# 傳入Flask類構造方法的第一個參數是模塊或包的名稱,這裏使用__name__,python會根據所處的模塊來賦予值,此處就是app
# 客戶端和服務器上的Flask程序的交互可以簡單概括爲:
# 1)用戶在瀏覽器輸入url訪問某個資源
# 2)Flask接受用戶請求並分析請求的url
# 3)爲這個url找到對應的處理函數
# 4)執行函數並生成相應,返回給瀏覽器
# 5)瀏覽器接受並解析響應,將信息顯示在頁面上。
# 上面這幾個步驟,大部分由flask完成。app.route()傳入參數
# the minimal Flask application
@app.route('/')
def index():
return '<h1>Hello, World!</h1>'
# bind multiple URL for one view function
# 一個視圖綁定多個url,點擊兩個url都會觸發相同的函數
@app.route('/hi')
@app.route('/hello')
def say_hello():
return '<h1>Hello, Flask!</h1>'
# dynamic route, URL variable default
# 動態綁定url,若果沒有defaults且不傳入變量,則會返回一個404錯誤響應
@app.route('/greet', defaults={'name': 'Programmer'})
@app.route('/greet/<name>')
def greet(name):
return '<h1>Hello, %s!</h1>' % name
# custom flask cli command
# 通過依賴包click內置CLI(Command Line Interface,命令行交互界面)系統 '
# 可註冊一個flask命令,flask hello,就會打印下面的問候。
@app.cli.command()
def hello():
# Just say hello.
click.echo('Hello, Human!')
-
運行demos/hello:
運行時會查找到demos/hello/app.py -
運行app.cli.command裝飾器中註冊的命令: