#python #flask
#python #flask
Вопрос:
Я работаю над динамическим чтением всех методов python и генерацией конечных точек из flask.Но я вижу исключение ниже
Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/flask/app.py", line 2464, in __call__ return self.wsgi_app(environ, start_response) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/flask/app.py", line 2450, in wsgi_app response = self.handle_exception(e) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/flask/app.py", line 1867, in handle_exception reraise(exc_type, exc_value, tb) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/flask/_compat.py", line 39, in reraise raise value File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/flask/app.py", line 2447, in wsgi_app response = self.full_dispatch_request() File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/flask/app.py", line 1953, in full_dispatch_request return self.finalize_request(rv) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/flask/app.py", line 1968, in finalize_request response = self.make_response(rv) File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/flask/app.py", line 2098, in make_response "The view function did not return a valid response. The" TypeError: The view function did not return a valid response. The function either returned None or ended without a return statement.
Это происходит потому, что метод не возвращает ничего, что неприемлемо в flask, есть ли способ справиться с этой ситуацией, когда тип возвращаемого значения базового метода python может обрабатываться отдельно. Я проверил make_response
в flask, но это тоже не удовлетворяет потребностям.
Комментарии:
1. «не удовлетворяет потребностям», которые есть? Зачем вам маршрут, который ничего не возвращает? По крайней мере, он должен возвращать код состояния
2. @DeepSpace — как я уже упоминал, я динамически генерирую конечную точку, не добавляя маршрут приложения для всех функций python. создание конечной точки с помощью add_url_rule, поэтому некоторые существующие методы в классах python ничего не возвращают,
3. это также известно как ленивая загрузка в flask. Где мы не изменяем существующие файлы и пытаемся загрузить модуль python путем импорта, flask.palletsprojects.com/en/1.1.x/patterns/lazyloading
Ответ №1:
По сути, мне пришлось создать класс MyFlask, который имеет Flask в качестве суперкласса.
class MyFlask(Flask):
def make_response(self, rv):
if not rv:
return super().make_response("Any String")
return super().make_response(rv)
app = MyFlask(__name__)