首先安裝flask套件
pip install flask
用flask模擬一個5000 PORT的web server
from flask import abort
from flask import Flask, jsonify, request
app = Flask(__name__)
@app.route('/', methods=['GET'])
def hello():
return 'hello world!'
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000 ,debug=True) #host=0.0.0.0就是開放所有人連線,127.0.0.1就是只接受本機連線
接下來用瀏覽器去連http://ip:5000,就會看到hello world!
一個頁面大概像下面這樣,method有POST、GET、PUT、DELETE
我比較常用的就是POST跟GET為主
@app.route(路徑,methods=['GET','POST']) #路徑,允許的方法
def function():
要做的動作
return '要回傳的值'
那POST要怎麼接收值呢,其實就是用request.form
假設我們要接收一個datetime的參數
@app.route('/post',methods['POST'])
def function():
datetime = request.form['datetime']
return '要回傳的值'
比較麻煩的是如果使用者丟上來的參數沒有datetime,程式就會出錯
所以如果這是必要欄位建議還是用try去接收
@app.route('/post',methods['POST'])
def function():
try:
datetime = request.form['datetime']
except:
return 'error'
return '要回傳的值'
如果是GET
@app.route('/test/',methods=['GET'])
def get_task():
return request.args.get("task_id") #直接取得參數
用瀏覽器連http://ip:5000/test/?task_id=123,就會看到123
如果是希望在連線沒有這個URL的時候不要跳出DEBUG的錯誤訊息,而是404之類的話
就在前面加上
@app.errorhandler(404)
def not_found(error):
return '404'
要取得USER到底是用post、get、put、delete的話
request.method(注意取得的值是大寫的GET、POST...)
取得使用者的IP request.remote_addr
另外如果要設定timeout之類的話,很像單純只靠flask內建的web是做不到的
要搭配其他的module或是將執行的動作寫到另一個程式內
用os.popen去呼叫,並且在該程式使用multithread去計算是否有逾時
如果逾時則回覆504之類的...
pip install flask
用flask模擬一個5000 PORT的web server
from flask import abort
from flask import Flask, jsonify, request
app = Flask(__name__)
@app.route('/', methods=['GET'])
def hello():
return 'hello world!'
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000 ,debug=True) #host=0.0.0.0就是開放所有人連線,127.0.0.1就是只接受本機連線
接下來用瀏覽器去連http://ip:5000,就會看到hello world!
一個頁面大概像下面這樣,method有POST、GET、PUT、DELETE
我比較常用的就是POST跟GET為主
@app.route(路徑,methods=['GET','POST']) #路徑,允許的方法
def function():
要做的動作
return '要回傳的值'
那POST要怎麼接收值呢,其實就是用request.form
假設我們要接收一個datetime的參數
@app.route('/post',methods['POST'])
def function():
datetime = request.form['datetime']
return '要回傳的值'
比較麻煩的是如果使用者丟上來的參數沒有datetime,程式就會出錯
所以如果這是必要欄位建議還是用try去接收
@app.route('/post',methods['POST'])
def function():
try:
datetime = request.form['datetime']
except:
return 'error'
return '要回傳的值'
如果是GET
@app.route('/test/',methods=['GET'])
def get_task():
return request.args.get("task_id") #直接取得參數
用瀏覽器連http://ip:5000/test/?task_id=123,就會看到123
如果是希望在連線沒有這個URL的時候不要跳出DEBUG的錯誤訊息,而是404之類的話
就在前面加上
@app.errorhandler(404)
def not_found(error):
return '404'
要取得USER到底是用post、get、put、delete的話
request.method(注意取得的值是大寫的GET、POST...)
取得使用者的IP request.remote_addr
另外如果要設定timeout之類的話,很像單純只靠flask內建的web是做不到的
要搭配其他的module或是將執行的動作寫到另一個程式內
用os.popen去呼叫,並且在該程式使用multithread去計算是否有逾時
如果逾時則回覆504之類的...