在行动之前。。。仅限:如何在python flask中执行此操作?

在行动之前。。。仅限:如何在python flask中执行此操作?,python,flask,Python,Flask,我需要将ruby代码更改为python,对此我也是新手。有没有人能告诉我有没有像之前那样的功能。。。仅限:在python烧瓶中? 这是我要更改的功能: class IftttController < ActionController::Base before_action :return_errors_unless_valid_service_key before_action :return_errors_unless_valid_action_fields, only: :cr

我需要将ruby代码更改为python,对此我也是新手。有没有人能告诉我有没有像之前那样的功能。。。仅限:在python烧瓶中? 这是我要更改的功能:

class IftttController < ActionController::Base
  before_action :return_errors_unless_valid_service_key
  before_action :return_errors_unless_valid_action_fields, only: :create_new_thing

def return_errors_unless_valid_service_key
      unless request.headers["HTTP_IFTTT_SERVICE_KEY"] == IFTTT_SERVICE_KEY
        return render plain: { errors: [ { message: "401" } ] }.to_json, status: 401
      end
    end

    def return_errors_unless_valid_action_fields
      if params[:actionFields] && params[:actionFields][:invalid] == "true"
        return render plain: { errors: [ { status: "SKIP", message: "400" } ] }.to_json, status: 400
      end
    end
end

有人能帮我吗?非常感谢。

Flask应用程序有几个挂钩,允许用户在请求之前或之后运行函数:

app = Flask(...)

@app.before_request
def i_have_been_called():
    print('I have been called')
这应该是我在每次请求之前被调用到控制台的输出

其他内置到Flask中的钩子包括before_请求、before_first_请求、before_请求、teardown_appcontext等等

至于唯一的:params,烧瓶里没有这样的东西。您必须编写函数来检查这种情况:

@app.before_request
def i_prefer_post():
    from flask import request
    if request.method == 'POST':
        print('I prefer POST')

要在这里回答您的问题,您可能需要提供更多的细节。也许在我采取行动之前,我对ruby ism一无所知,但作为一名Python程序员,你的问题让我完全无话可说。你能给一些你的代码,包括你正在试图转换的Ruby代码的相关部分和你到目前为止所写的Python代码吗
@app.before_request
def i_prefer_post():
    from flask import request
    if request.method == 'POST':
        print('I prefer POST')