Daniel Maldonado

miércoles, 11 de noviembre de 2015

#Django en la línea de comandos

Django al igual que otros frameworks como Ruby on Rails o Symfony2 generan código de forma automática y todo esto lo hacen gracias a sus herramientas en la línea de comandos. Maravilloso verdad?


Por ejemplo para tener nuestro primer acercamiento a los comandos de Django podemos escribir:

$ django-admin

Type 'django-admin help <subcommand>' for help on a specific subcommand.

Available subcommands:

[django]
    check
    compilemessages
    createcachetable
    dbshell
    diffsettings
    dumpdata
    flush
    inspectdb
    loaddata
    makemessages
    makemigrations
    migrate
    runfcgi
    runserver
    shell
    showmigrations
    sql
    sqlall
    sqlclear
    sqlcustom
    sqldropindexes
    sqlflush
    sqlindexes
    sqlmigrate
    sqlsequencereset
    squashmigrations
    startapp
    startproject
    syncdb
    test
    testserver
    validate

Mientas vallamos aprendiendo nuevas cosas dentro del framework, vamos a ir viendo todas, o por lo menos la mayoría de las opciones con las que cuenta Django.

En Symfony2, por ejemplo, sus comandos son bastantes similares y permiten la generación de proyecto, Bundle,  conexión con bases de datos, etc En Django a simple vista se puede ver que muchos sub-comandos tiene una funcionalidad similar a su nombre, que son muy descriptivos.

A los que utilizan servidores tipo UNIX quizás se ven más familiarizados a utilizar la línea de comandos, el secreto está simplemente en hacer uso e ir recordando poco a poco herramientas básicas para poder operar todo un sistema operativo desde allí.

Para obtener información adicional, lo primero que vamos a hacer es uso de help y eso se lo recomiendo siempre antes de ejecutarlo.

$ django-admin help

Veamos el siguiente ejemplo práctico:

$ django-admin help shell
usage: django-admin shell [-h] [--version] [-v {0,1,2,3}]
                          [--settings SETTINGS] [--pythonpath PYTHONPATH]
                          [--traceback] [--no-color] [--plain] [--no-startup]
                          [-i {ipython,bpython}]

Runs a Python interactive interpreter. Tries to use IPython or bpython, if one
of them is available.

optional arguments:
  -h, --help            show this help message and exit
  --version             show program's version number and exit
  -v {0,1,2,3}, --verbosity {0,1,2,3}
                        Verbosity level; 0=minimal output, 1=normal output,
                        2=verbose output, 3=very verbose output
  --settings SETTINGS   The Python path to a settings module, e.g.
                        "myproject.settings.main". If this isn't provided, the
                        DJANGO_SETTINGS_MODULE environment variable will be
                        used.
  --pythonpath PYTHONPATH
                        A directory to add to the Python path, e.g.
                        "/home/djangoprojects/myproject".
  --traceback           Raise on CommandError exceptions
  --no-color            Don't colorize the command output.
  --plain               Tells Django to use plain Python, not IPython or
                        bpython.
  --no-startup          When using plain Python, ignore the PYTHONSTARTUP
                        environment variable and ~/.pythonrc.py script.
  -i {ipython,bpython}, --interface {ipython,bpython}
                        Specify an interactive interpreter interface.
                        Available options: "ipython" and "bpython"

De esta manera, podemos combinarlo de la siguiente forma

$ django-admin shell --version
1.8.6

Al principio, estoy seguro que a muchos le puede resultar algo confuso y por momentos difícil, pero es cuestión de acostumbrarse un poco y dar algo de práctica.

Saludos!

Entradas populares