我已經看到通過GET
參數和硬編碼參數here和here的帖子。燒瓶將POST參數傳遞給自定義修飾器
我想要做的是將POST
參數傳遞給自定義裝飾器。 route
實際上不是渲染頁面,而是處理一些內容並通過AJAX調用返回結果。
的裝飾看起來是這樣的:
# app/util.py
from functools import wraps
from models import data
# custom decorator to validate symbol
def symbol_valid():
def decorator(func):
@wraps(func)
def decorated_function(symbol, *args, **kwargs):
if not data.validate_symbol(symbol):
return jsonify({'status': 'fail'})
return func(*args, **kwargs)
return decorated_function
return decorator
的觀點看起來是這樣的:
# app/views/matrix_blueprint.py
from flask import Blueprint, request, jsonify
from ..models import data
from ..util import symbol_valid
matrix_blueprint = Blueprint('matrix_blueprint', __name__)
# routing for the ajax call to return symbol details
@matrix_blueprint.route('/route_line', methods=['POST'])
@symbol_valid
def route_line():
symbol = request.form['symbol'].upper()
result = data.get_information(symbol)
return jsonify(**result)
我明白,其實我可以打電話@symbol_valid()
當我傳遞參數通過GET
這樣/quote_line/<symbol>
但我需要POST
。
那麼問題是我的裝飾器如何訪問POST
ed變量?
'symbol'不在該佈線後一個網址PARAM,你需要得到形式進入裝飾,並檢查它在那裏我猜 – reptilicus