使Flask的url支持正則表達式以及一個api小demo


 
          
from flask import Flask
from flask import jsonify
from flask import request
from werkzeug.routing import BaseConverter
app = Flask(__name__)


#重新定義url匹配規則
class RegexConverter(BaseConverter): def __init__(self, url, *args): self.url = url self.regex = args[0] app.url_map.converters['regex'] = RegexConverter #請求地址映射 @app.route('/index',methods=['POST']) def test_post(): #定義響應結果集 resultMap = {} #獲取post請求參數 a = request.json['a'] b = request.json['b'] #如果參數必填就要加上 if a and b: if a == b: resultMap['ret_code'] = 200 resultMap['ret_info'] = '成功' #返回json格式的 return jsonify(resultMap) else: resultMap['ret_code'] = 500 resultMap['ret_info'] = '失敗' return jsonify(resultMap) else: resultMap['ret_code'] = 500 resultMap['ret_info'] = '缺少請求參數' return jsonify(resultMap)

#萬能url可以接收所有進入這個服務的請求 @app.route(
'/<regex(r"[\w\W]*"):url>',methods=['GET']) def test_get(url): resultMap = {} c = request.args.get('c') d = request.args.get('d') if c and d: if c != d: resultMap['ret_code'] = 200 resultMap['ret_info'] = 'c和d不相等喲' return jsonify(resultMap) else: resultMap['ret_code'] = 500 resultMap['ret_info'] = 'c和d相等啦啦啦啦啦' return jsonify(resultMap) else: resultMap['ret_code'] = 500 resultMap['ret_info'] = '缺少請求參數' return jsonify(resultMap) if __name__ == '__main__': app.run(debug=True,port=505)
 
          

 

 

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM