Python

Flask

  1. Verifica la disponibilidad de Python, pip y Virtualenv:

    [alumno@servidor ~]$ which python
    /usr/bin/python
    [alumno@servidor ~]$ python --version
    Python 2.7.5
    [alumno@servidor ~]$ which pip
    /usr/bin/pip
    [alumno@servidor ~]$ pip --version
    pip 7.1.0 from /usr/lib/python2.7/site-packages (python 2.7)
    [alumno@servidor ~]$ which virtualenv
    which: no virtualenv in (/home/alumno/.local/bin:...)
    

    Como usuario root, instala a Virtualenv:

    [root@servidor ~]# pip install virtualenv
    Collecting virtualenv
      Downloading virtualenv-13.1.0-py2.py3-none-any.whl (1.7MB)
    Installing collected packages: virtualenv
    Successfully installed virtualenv-13.1.0
    

    Verifica la instalación de Virtualenv:

    [alumno@servidor ~]$ which virtualenv
    /usr/bin/virtualenv
    [alumno@servidor ~]$ virtualenv --version
    13.1.0
    
  2. Crea el directorio para el proyecto (flask) y accede a él:

    [alumno@servidor ~]$ mkdir -p $HOME/www/flask
    [alumno@servidor ~]$ cd $HOME/www/flask
    
  3. Crea un entorno virtual dentro de tu proyecto:

    [alumno@servidor flask]$ virtualenv venv
    New python executable in venv/bin/python
    Installing setuptools, pip, wheel...done.
    
  4. Activa el recien creado entorno virtual dentro de tu proyecto:

    [alumno@servidor flask]$ . venv/bin/activate
    (venv)[alumno@servidor flask]$
    

    Observaciones: al activar el entorno virtual el prompt de la shell cambiará.

  5. Instala a Flask de forma local, dentro de tu proyecto:

    (venv)[alumno@servidor flask]$ pip install Flask
      InsecurePlatformWarning
    Collecting Flask
      InsecurePlatformWarning
      Downloading Flask-0.10.1.tar.gz (544kB)
        100% |████████████████████████████████| 544kB 347kB/s 
    Collecting Werkzeug>=0.7 (from Flask)
      Downloading Werkzeug-0.10.4-py2.py3-none-any.whl (293kB)
        100% |████████████████████████████████| 294kB 483kB/s 
    Collecting Jinja2>=2.4 (from Flask)
      Downloading Jinja2-2.8-py2.py3-none-any.whl (263kB)
        100% |████████████████████████████████| 266kB 608kB/s 
    Collecting itsdangerous>=0.21 (from Flask)
      Downloading itsdangerous-0.24.tar.gz (46kB)
        100% |████████████████████████████████| 49kB 770kB/s 
    Collecting MarkupSafe (from Jinja2>=2.4->Flask)
      Downloading MarkupSafe-0.23.tar.gz
    Building wheels for collected packages: Flask, itsdangerous, MarkupSafe
      Running setup.py bdist_wheel for Flask
      Stored in directory: /home/alumno/.cache/pip/wheels/d2/db/61/cb9b80526b8f3ba89248ec0a29d6da1bb6013681c930fca987
      Running setup.py bdist_wheel for itsdangerous
      Stored in directory: /home/alumno/.cache/pip/wheels/97/c0/b8/b37c320ff57e15f993ba0ac98013eee778920b4a7b3ebae3cf
      Running setup.py bdist_wheel for MarkupSafe
      Stored in directory: /home/alumno/.cache/pip/wheels/94/a7/79/f79a998b64c1281cb99fa9bbd33cfc9b8b5775f438218d17a7
    Successfully built Flask itsdangerous MarkupSafe
    Installing collected packages: Werkzeug, MarkupSafe, Jinja2, itsdangerous, Flask
    Successfully installed Flask-0.10.1 Jinja2-2.8 MarkupSafe-0.23 Werkzeug-0.10.4 itsdangerous-0.24
    
  6. Crea el archivo index.py (el punto de inicio de tu "aplicación") con el siguiente contenido:

    from flask import Flask, jsonify
    app = Flask(__name__)
    
    @app.route('/')
    def hello_world():
        return jsonify(mensaje="Hola mundo")
    
    if __name__ == '__main__':
        app.run(host='0.0.0.0', port=8080)
    
  7. Ejecuta tu aplicación:

    (venv)[alumno@servidor flask]$ pwd
    /home/alumno/www/flask
    (venv)[alumno@servidor flask]$ python index.py 
     * Running on http://0.0.0.0:8080/ (Press CTRL+C to quit)
    
  8. Con un cliente REST accede a http://localhost:8080

    images/flask.png

Lecturas