一、一個最小的應用窺探flask基本結構
from flask import Flask #從flask中導入Flask
app = Flask(__name__) 創建一個實例
@app.route('/') #裝飾器、設置路由,需要寫在函數前面
def hello_world(): #定理一個方法(無參數)
return 'Hello World!' #返回字符串
#當瀏覽器訪問時,將字符串返回到瀏覽器頁面
if __name__ == '__main__':#判斷是不是啓動文件
#確保服務器只會在該腳本被 Python解釋器直接執行
的時候纔會運行,而不是作爲模塊導入的時候。
app.run() #運行
可以看出app.run()中沒有傳遞參數,實質上裏面是個默認參數
app.run(host =’127.0.0.1’)代表本機。
還有以下集中設置方法
app.run(host='0,0,0,0') #代表外部網絡可ui訪問的公共的
app.run(host='127.0.0.1')#代表本機
二、調試模式
你啓用了調試支持,服務器會在代碼修改後自動重新載入,
並在發生錯誤時提供一個相當有用的調試器。
有兩種途徑來啓用調試模式。
#第一種
再app實例化後調用
app.debug = True
#第二種
作爲 run 方法的一個參數傳入:
app.run(debug=True)
注意:絕對不能用於生產環境
三、路由
route() 裝飾器把一個函數綁定到對應的 URL 上
#超級超級基礎的演示示例
@app.route('/')
def index():
return 'Index Page'
@app.route('/hello')
def hello():
return 'Hello World'
/route()裏面的東西就是匹配的內容
四、變量規則
·要給 URL 添加變量部分
·你可以把這些特殊的字段標記爲
### 第一種,簡簡單單接收再返回個變量
@app.route('/user/<username>')
def show(username):
return 'User %s' % username
### 第二種,簡簡單單接收再返回個帶類型的參數
@app.route('/post/<int:post_id>')
def show_post(post_id):
return 'Post %d' % post_id
當然,還有下面幾種設置類型的參數
類型名稱 | 功能 |
---|---|
int | 可接收整數 |
float | 可接受浮點數 |
path | 默認、也可接受斜線 |
五、解決問題的唯一URL重定向
@app.route(‘/projects/’)裏面的內容必須雙斜線!!!
六、自己構造URL
### 假裝有個寫好的方法
@app.route('/user/<name>')
def showUserName(name):
return 'User %s' %name
### 魔術開始,構建URL
@app.route('/redir/<n>')
def redir(n):
return redirect(url_for('showUserName',name=n))
它接受函數名作爲第一個參數,也接受對應
URL 規則的變量部分的命名參數。
七、使用Flask-Script支持命令行選項
Flask-Script 擴展使用
pip 安裝:
(venv) $ pip install flask-script
(注意venv,確保實在虛擬環境下)
### 關鍵代碼
from flask_script import Manager
### 導入flask_script包
manager = Manager(app)
實例化manager
這樣修改完,可以調整一下運行代碼
if __name__ == '__main__':
manager.run()
手動debug升級爲自動
命令:
python hello.py runserver -d -r --host 0.0.0.0
### -d debug 設置爲debug模式,而不是run模式
### -r reload 設置自動重新載入(app.debug爲True)
- Thanks for reading! *