Instalé el complemento Flask en PyCharm Community Edition y solo tengo este código simple en mi aplicación Flask:
from flask import Flask app = Flask(__name__) @app.route('/') def index(): return '<h1>Hello!</h1>' if __name__ == "__main__": app.run(debug=True)Y me sale este mensaje:
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead * Restarting with stat * Debugger is active! * Debugger PIN: 123-456-789 * Running on http://127.0.0.1:5000/¿Por qué recibo este error cuando ejecuto Flask?
Una versión anterior del mensaje decía "No usar el servidor de desarrollo en un entorno de producción".
Para implementar una aplicación en producción, una opción es usar Waitress, un servidor WSGI de producción.
Aquí hay un ejemplo del uso de waitress en el código.
from flask import Flask app = Flask(__name__) @app.route("/") def index(): return "<h1>Hello!</h1>" if __name__ == "__main__": from waitress import serve serve(app, host="0.0.0.0", port=8080)Ejecutando la aplicación:
$ python hello.py Waitress también proporciona una utilidad de línea de comando waitress-serve . Para usar eso, puede modificar el código a lo siguiente:
from flask import Flask app = Flask(__name__) @app.route("/") def index(): return "<h1>Hello!</h1>" def create_app(): return app Entonces podemos usar waitress-serve de la siguiente manera:
waitress-serve --port=8080 --call hello:create_appY por cierto, 8080 es el puerto predeterminado.
Para validar la implementación, abra una ventana separada:
% curl localhost:8080 <h1>Hello!</h1>%O directamente en su navegador http://localhost:8080/ .
Otras alternativas para implementar su aplicación incluyen Gunicorn y uWSGI. Para obtener más detalles, consulte el documento de implementación del matraz .
A menos que le diga al servidor de desarrollo que se está ejecutando en modo de desarrollo, asumirá que lo está usando en producción y le advertirá que no lo haga. El servidor de desarrollo no está diseñado para su uso en producción. No está diseñado para ser particularmente eficiente, estable o seguro.
Habilite el modo de desarrollo configurando la variable de entorno FLASK_ENV en development .
$ export FLASK_APP=example $ export FLASK_ENV=development $ flask runSi está ejecutando PyCharm (o probablemente cualquier otro IDE), puede establecer variables de entorno en la configuración de ejecución.
El modo de desarrollo habilita el depurador y el recargador de forma predeterminada. Si no los quiere, pase --no-debugger o --no-reloader al comando de run .
Sin embargo, esa advertencia es solo una advertencia, no es un error que impide que su aplicación se ejecute. Si su aplicación no funciona, hay algo más mal con su código.
Si para algunas personas (como yo antes) las respuestas anteriores no funcionan, creo que la siguiente respuesta funcionaría (creo que para usuarios de Mac) Ingrese los siguientes comandos para ejecutar el matraz
$ export FLASK_APP = hello.py $ export FLASK_ENV = development $ flask runAlternativamente, puede hacer lo siguiente (no lo he probado, pero un recurso en línea habla de ello)
$ export FLASK_APP = hello.py $ python -m flask runfuente: Para más