要求字串(Query String)是網址的一部分
通訊協定://主機名稱:埠號/路徑?要求字串
必須按照特定格是撰寫
格式說明
範例一
範例二
https://tw.search.yahoo.com/search?p=test&fr=yfp=yfp-search-sb
透過網址,送出包含要求字串的請求
http://127.0.0.1/getSum?max=10
http://127.0.0.1/getSum?max=5
在路由的處理函式中,取得要求字串的資料
http://127.0.0.1/getSum?max=10
http://127.0.0.1/getSum?max=5
@app.route("/getSum")
def getSum():
data=request.args.get("max",None) #None那個式預設值
return data
透過請求物件(request)取得要求字串的資料
request.args.get("參數名稱",預設值)
@app.route("/getSum")
def getSum():
data=request.args.get("max",None) #None那個式預設值
return data
首先我們要先建立 /getSum 對應的處理函式
執行Server在網址欄中在後面增加 /getSum的路徑
~真的有ㄟ!~
maxNum
並將 maxNum
轉成 int/getSum
底下因為沒有Query String
所以 return
的值為1加到100如果我們在/getSum
後面鍵入?max=10 那這時 maxNum=10
所以會算到1加到10
from unittest import result
from flask import Flask #載入 Flask
from flask import request #載入 Request 物件
#在建立Application物件,可以設定靜態檔案的路徑處理
app=Flask(
__name__,
static_folder="public", #靜態檔案的「資料夾」名稱
static_url_path="/" #靜態檔案的對應網址「路徑」
)
# 所有在static 資料夾底下的檔案,都對應到網址路徑 /abc/檔案名稱
#建立路徑 / 對應的處理方式
#路由設定
#首先我們要先建立 /getSum 對應的處理函式
#利用要求自串 (Query String) 提供彈性
@app.route("/getSum") #建立路徑
def getSum(): #處理函式,給他一個1+..+maxNum的Function
maxNum=request.args.get("max",100) #如果網址沒有要求字串, maxNum=100
maxNum=int(maxNum) #maxNum剛收到的資料為string要轉為int
result=0
for i in range(1,maxNum+1):
result+=i
return "結果 : "+str(result)
@app.route("/") #'/'叫正斜線反之'\'叫反斜線
def index():#用來回應路徑 / 的處理函式
""" print("請求方法:", request.method) #(物件.屬性)
print("通訊協定 :", request.scheme)
print("主機名稱 :", request.host)
print("路徑 :",request.path)
print("完整的網址 :",request.url) """ #Shift + Alt + A 快速註解
#其實上面這些在網址就看得到了
''' 從request「物件」內的headers「屬性」裡的get「方法」取得的標頭名稱"user-agent" '''
print("瀏覽器何作業系統 :", request.headers.get("user-agent"))
print("語言偏好 :", request.headers.get("accept-language"))
print("引薦網址", request.headers.get("referrer"))
return "Hello Flask" # 回傳路徑 / 的內容
#建立路徑 /data對應的處理函式
@app.route("/data")
def handData():
return "My Data"
#動態路由:建立 /usr/使用者名稱 的處理函式
@app.route("/user/<username>")
def handleUser(username):
return "Hello "+username
@app.route("/player/<name>")
def User(name):
if name=="琪琪":
return "嗨! "+name
else:
return "我是BOT"
app.run(port=3000) #啟動伺服器
我們再新增一MinNum在 getSum函式底,這邊我們minNum的值預設為0
我們運行Server看一下結果,max、min誰先設都沒關係
from unittest import result
from flask import Flask #載入 Flask
from flask import request #載入 Request 物件
#在建立Application物件,可以設定靜態檔案的路徑處理
app=Flask(
__name__,
static_folder="public", #靜態檔案的「資料夾」名稱
static_url_path="/" #靜態檔案的對應網址「路徑」
)
# 所有在static 資料夾底下的檔案,都對應到網址路徑 /abc/檔案名稱
#建立路徑 / 對應的處理方式
#路由設定
#首先我們要先建立 /getSum 對應的處理函式
#利用要求自串 (Query String) 提供彈性
@app.route("/getSum") #建立路徑
def getSum(): #處理函式,給他一個1+..+maxNum的Function
minNum=request.args.get("min",0)
minNum=int(minNum)
maxNum=request.args.get("max",100) #如果網址沒有要求字串, maxNum=100
maxNum=int(maxNum) #maxNum剛收到的資料為string要轉為int
result=0
for i in range(minNum,maxNum+1):
result+=i
return "結果 : "+str(result)
@app.route("/") #'/'叫正斜線反之'\'叫反斜線
def index():#用來回應路徑 / 的處理函式
""" print("請求方法:", request.method) #(物件.屬性)
print("通訊協定 :", request.scheme)
print("主機名稱 :", request.host)
print("路徑 :",request.path)
print("完整的網址 :",request.url) """ #Shift + Alt + A 快速註解
#其實上面這些在網址就看得到了
''' 從request「物件」內的headers「屬性」裡的get「方法」取得的標頭名稱"user- agent" '''
print("瀏覽器何作業系統 :", request.headers.get("user-agent"))
print("語言偏好 :", request.headers.get("accept-language"))
print("引薦網址", request.headers.get("referrer"))
return "Hello Flask" # 回傳路徑 / 的內容
#建立路徑 /data對應的處理函式
@app.route("/data")
def handData():
return "My Data"
#動態路由:建立 /usr/使用者名稱 的處理函式
@app.route("/user/<username>")
def handleUser(username):
return "Hello "+username
@app.route("/player/<name>")
def User(name):
if name=="琪琪":
return "嗨! "+name
else:
return "我是BOT"
app.run(port=3000) #啟動伺服器