一、環境
CentOS release 6.7 (Final)
Python 2.7.6
二、安裝flask框架:pip install flask
web服務器把接收到的客戶端的請求都會轉交給flask程序實例進行處理,所以需要創建一個flask實例才能夠處理程序的請求。
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return '<h1>First Flask Web !</h1>'
if __name__ == '__main__':
app.run(host='172.16.10.29',port=5000)
(1)首先需要導入需要的包from flask import Flask
(2)創建實例對象app ,該實例對象在創建的時候需要傳入一個參數,這個參數是要執行的模塊的名字,這個參數決定程序的根目錄,也就是該參數所在程序的目錄。
(3)編寫路由和視圖函數,在客戶端發起的請求都是以URL的形式發起,服務端在接收到請求的URL時,將請求轉交給實例對象,此時實例對象就需要根據根據路由綁定的URL路徑找到對應的處理程序處理請求,該處理函數就是視圖函數,處理URL和視圖函數之間的關係的代碼稱爲路由。路由:@app.route('/') 路由之後緊跟的函數就是視圖函數。
(4)運行程序。在主函數通過實例對象調用run函數開啓服務。app.run(host='172.16.10.29',port=5000) host綁定的是要訪問的機器的IP,port是服務監聽的端口號。
三、動態路由
在訪問一個網站的時候,大多數的時候會出現動態地址的請求,此時只需要將動態的部分進行處理就可以。所有的請求只要靜態部分和處理請求的路由的靜態部分完全匹配都會分配給動態路由進行處理。
@app.route('/user/<username>')
def user(username):
return '<h1>%s , HI !</h1>' % username
執行的結果就是根據傳入的請求參數展示不同的信息。請求的動態部分默認是字符串,也可以使用其他的類型。
動態部分可以用的類型:int 、float 以及路徑 使用方式
<int:id>
<float:id>
<path:filepath>
@app.route('/int/<int:id>')
def int(id):
return "<h1>This is int type numbers %s </h1>" % id
注意在開啓服務的時候,如果run函數的參數傳入debug=True ,服務默認的端口號是5000,此時如果再該機器上再啓動一個程序沒有設置端口號,將會出現錯誤提示,提示端口被佔用。
完整的程序:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return '<h1>First Flask Web !</h1>'
@app.route('/user/<username>')
def user(username):
return '<h1>%s , HI !</h1>' % username
@app.route('/int/<int:id>')
def int(id):
return "<h1>This is int type numbers %s </h1>" % id
if __name__ == '__main__':
app.run(host='172.16.10.29',port=5000)