2016-02-21 3 views
1

У меня довольно тяжелое приложение, созданное на основе фляжки, поэтому я просто представляю меньшую версию проблемы здесь. Я разделил мое приложение на модули, имеющие структуруFlask after_request Объект «NoneType» не может быть вызван

Folder A: 
    __init__.py (empty) 
    main-file.py (executable file) 
    other-file.py 

other-file.py

from flask_restful import reqparse, abort, Api, Resource 
from flask import Flask 

TODOS = { 
'todo1': {'task': 'build an API'}, 
'todo2': {'task': '?????'}, 
'todo3': {'task': 'profit!'}, 
} 
class TodoList(Resource): 
    def get(self): 
     return TODOS 

main-file.py

from flask import Flask,request 
from other-file import * 

app = Flask(__name__) 
api = Api(app) 

@app.before_request 
def before_request(): 
    print 'before request' 

@app.after_request   #This block fails 
def after(response): 
    print 'after request' 
    #I need to perform some db operations here 


api.add_resource(TodoList, '/todos') 


if __name__ == '__main__': 
    app.run(debug=True) 

Проблема здесь после того, как деление кода работает все, кроме afer_request. Мне нужно выполнить некоторые операции, связанные с базой данных, для регистрации в данных запроса после каждого запроса. Когда я запускаю main-file.py, я получаю TypeError: 'NoneType' object is not callable

Как-то я понял, что ответ obj в after_request дает None. Я мертв, застрял здесь, чтобы сделать это after_request работать. Любая помощь будет оценена. Благодарю.

ответ

4

Возвращает ответ после того, как вы сделали:

@app.after_request   #This block fails 
def after(response): 
    # do your database stuff 
    return response 
+0

работал как charm.Thanks. почему я не думал об этом раньше? –

Смежные вопросы