Форум сайта python.su
Здравствуйте.
В программировании полнейший ноль, если не считать Бейсик на Спекртуме в молодости.
По ману установил. Видимо где-то напутал с путями.
После дернуло меня переустановить Python.
Вообщем вывод при открытии http://0.0.0.0:5000/ :
:/home/flask_server# python app.py * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit) 404: Not Found [2016-11-11 03:49:07,906] ERROR in app: Exception on / [GET] Traceback (most recent call last): File "/home/flask_server/env/local/lib/python2.7/site-packages/flask/app.py", line 1988, in wsgi_app response = self.full_dispatch_request() File "/home/flask_server/env/local/lib/python2.7/site-packages/flask/app.py", line 1642, in full_dispatch_request response = self.make_response(rv) File "/home/flask_server/env/local/lib/python2.7/site-packages/flask/app.py", line 1731, in make_response raise ValueError('View function did not return a response') ValueError: View function did not return a response View function did not return a response Traceback (most recent call last): File "app.py", line 33, in <module> app.run(host='0.0.0.0', port=port) File "/home/flask_server/env/local/lib/python2.7/site-packages/flask/app.py", line 843, in run run_simple(host, port, self, **options) File "/home/flask_server/env/local/lib/python2.7/site-packages/werkzeug/serving.py", line 694, in run_simple inner() File "/home/flask_server/env/local/lib/python2.7/site-packages/werkzeug/serving.py", line 659, in inner srv.serve_forever() File "/home/flask_server/env/local/lib/python2.7/site-packages/werkzeug/serving.py", line 499, in serve_forever HTTPServer.serve_forever(self) File "/usr/lib/python2.7/SocketServer.py", line 238, in serve_forever self._handle_request_noblock() File "/usr/lib/python2.7/SocketServer.py", line 297, in _handle_request_noblock self.handle_error(request, client_address) File "/usr/lib/python2.7/SocketServer.py", line 295, in _handle_request_noblock self.process_request(request, client_address) File "/usr/lib/python2.7/SocketServer.py", line 321, in process_request self.finish_request(request, client_address) File "/usr/lib/python2.7/SocketServer.py", line 334, in finish_request self.RequestHandlerClass(request, client_address, self) File "/usr/lib/python2.7/SocketServer.py", line 649, in __init__ self.handle() File "/home/flask_server/env/local/lib/python2.7/site-packages/werkzeug/serving.py", line 216, in handle rv = BaseHTTPRequestHandler.handle(self) File "/usr/lib/python2.7/BaseHTTPServer.py", line 340, in handle self.handle_one_request() File "/home/flask_server/env/local/lib/python2.7/site-packages/werkzeug/serving.py", line 251, in handle_one_request return self.run_wsgi() File "/home/flask_server/env/local/lib/python2.7/site-packages/werkzeug/serving.py", line 193, in run_wsgi execute(self.server.app) File "/home/flask_server/env/local/lib/python2.7/site-packages/werkzeug/serving.py", line 181, in execute application_iter = app(environ, start_response) File "/home/flask_server/env/local/lib/python2.7/site-packages/flask/app.py", line 2000, in __call__ return self.wsgi_app(environ, start_response) File "/home/flask_server/env/local/lib/python2.7/site-packages/flask/app.py", line 1991, in wsgi_app response = self.make_response(self.handle_exception(e)) File "/home/flask_server/env/local/lib/python2.7/site-packages/flask/app.py", line 1731, in make_response raise ValueError('View function did not return a response') ValueError: View function did not return a response
Офлайн
Функция не вернула Response объект. Скорее всего у Вас ошибкп в коде. Нужо его смотреть. Возможно вызывающие скобки не поставили.
Офлайн
JOHN_16Тогда бы вернулась функция, ошибка была бы другая, скорее всего вьюха вообще ничего не возвращает.
Возможно вызывающие скобки не поставили.
Офлайн
app.py
import logging import os from logging import Formatter, FileHandler from flask import Flask app = Flask(__name__) @app.errorhandler(500) def internal_error(error): print str(error) @app.errorhandler(404) def not_found_error(error): print str(error) if not app.debug: file_handler = FileHandler('error.log') file_handler.setFormatter( Formatter('%(asctime)s %(levelname)s: \ %(message)s [in %(pathname)s:%(lineno)d]') ) app.logger.setLevel(logging.INFO) file_handler.setLevel(logging.INFO) app.logger.addHandler(file_handler) app.logger.info('errors') if __name__ == '__main__': port = int(os.environ.get('PORT', 5000)) app.run(host='0.0.0.0', port=port) @app.route('/v{}/ocr'.format(_VERSION), methods=["POST"]) def ocr(): try: url = request.json['image_url'] if 'jpg' in url: output = process_image(url) return jsonify({"output": output}) else: return jsonify({"error": "only .jpg files, please"}) except: return jsonify( {"error": "Did you mean to send: {'image_url': 'some_jpeg_url'}"} )
Офлайн
errorhandler'a ничего не возвращают…
Ну и app.route поставьте после errorhandler'ов
Офлайн
4kpt_IVВы имеете ввиду так?:
errorhandler'a ничего не возвращают…Ну и app.route поставьте после errorhandler'ов
import logging import os from logging import Formatter, FileHandler from flask import Flask app = Flask(__name__) @app.errorhandler(500) def internal_error(error): print str(error) @app.errorhandler(404) def not_found_error(error): print str(error) @app.route('/v{}/ocr'.format(_VERSION), methods=["POST"]) def ocr(): try: url = request.json['image_url'] if 'jpg' in url: output = process_image(url) return jsonify({"output": output}) else: return jsonify({"error": "only .jpg files, please"}) except: return jsonify( {"error": "Did you mean to send: {'image_url': 'some_jpeg_url'}"} ) if not app.debug: file_handler = FileHandler('error.log') file_handler.setFormatter( Formatter('%(asctime)s %(levelname)s: \ %(message)s [in %(pathname)s:%(lineno)d]') ) app.logger.setLevel(logging.INFO) file_handler.setLevel(logging.INFO) app.logger.addHandler(file_handler) app.logger.info('errors') if __name__ == '__main__': port = int(os.environ.get('PORT', 5000)) app.run(host='0.0.0.0', port=port)
:/home/flask_server# python app.py Traceback (most recent call last): File "app.py", line 19, in <module> @app.route('/v{}/ocr'.format(_VERSION), methods=["POST"]) NameError: name '_VERSION' is not defined
Офлайн
ну начнем с того, что так роуты генерить нельзя!!!
Попробуйте простой роут
# @app.route('/v/ocr', methods=["POST"])
Офлайн
:/home/flask_server# python app.py File "app.py", line 21 if not app.debug: ^ SyntaxError: invalid syntax
Офлайн
Вы где-то ошиблись с отсупом. Покажите полностью весь код
Офлайн
Вы имеете ввиду так?:странно, что можно не понять во фразе
errorhandler'a ничего не возвращают…они же у тебя ничего не возвращают. Понимаешь, что значит возврат значения из функции?
Офлайн