VirtualEnv para Django

Image
¿Que hace VirtualEnv?
virtualenv es una herramienta para crear entornos python insolados.Ventajas:

  • Seguimiento de paquetes instalados
  • Mantiene el entorno del sistema limpio
  • Duplica fácilmente el entorno de producción o desarrollo.

Instalación (asumiendo que tienen una distribución basada en debian):

Código:

$ sudo apt-get install python-virtualenv

O si estas usando un sistema basado en fedora:

Código:

# yum install python-virtualenv

Creación de un entorno virtual:

Código:

$ virtualenv venv

Activar entorno virtual:

Código:

$ source venv/bin/activate

Instalando paquetes:

Código:

(venv)$ pip install django

Instalando paquetes con una versión especifica:

Código:

(venv)$ pip install django==1.3

Desinstalando paquetes:

Código:

(venv)$ pip uninstall django

Actualizando paquetes:

Código:

(venv)$ pip install --upgrade django

Respaldando paquetes instalados

Código:

(venv)$ pip freeze > requirements.txt

Instalando paquetes desde un archivo requirements.txt

Código:

(venv)$ pip install -r requirements.txt

Aquí solo he mostrado los comandos mas básicos de pip para uso mas avanzado pueden checar la documentación.

Una vez que hayan terminado de usar el entorno virtual y deseen desactivar el entorno solo tienen que hacer lo siguiente:

Código:

(venv)$ deactivate

Fuente: http://www.forosdelweb.com

Subir archivos con Django: Dango-tinymce y django-filebrowser

Django-TinyMCE + Django-Filebrowser

 

Me váis a permitir una pequeña nota mental porque siempre me hago un lío. A la hora de usar un editor WYSIWYG en Django normalmente las preguntas suelen ser las mismas de siempre:

  1. ¿TinyMCE ó CKEditor?.
  2. ¿Django Filebrowser con Grappelli o sin Grappelli?
  3. ¿Funcionará en Django 1.4?
  4. ¿Vienen integrados con uploaders de imágenes?.
  5. ¿Funciona automágicamente con el admin de Django?.
  6. ¡Truenos!, no me funciona a la primera, ¿por qué?.

Las respuestas son sencillas una vez se ha probado… y como es la segunda vez que tropiezo con la misma piedra casi prefiero dejarlo documentado para torpes como yo.

¿TinyMCE ó CKEditor?

Yo actualmente estoy usando TinyMCE con el paquete django-tinymce (django-tinymce==1.5.1b2) porque funciona bien en conjunción con django-filebrowser-no-grappelli (django-filebrowser-no-grappelli==3.0) y es muy sencillo de utilizar (link, link).

¿Django Filebrowser con Grappelli o sin Grappelli?

Queda respondida con la anterior, en principio utilizo la versión “no-grappelli” porque quiero tener las dependencias mínimas para que los proyectos funcionen de forma autónoma. Todavía no he probado Grappelli en profundidad, estoy convencido que el día que lo haga me gustará, pero mientras tanto me voy apañando (algo he leido sobre incompatibiliades de esta modificación con Django 1.4).

¿Funcionará en Django 1.4?

Puedo asegurar que django-tinymce + django-filebrowser-no-grappelli es fully functional en Django 1.4. Upload con uploadify y select combinado con tinymce incluidos. El mayor problema que nos podremos encontrar es la ubicación de los .js.

¿Vienen integrados con uploaders de imágenes?

Si, django-filebrowser-no-grappelli viene con un upload genérico (en caso de no tener Flash) y Uploadify en caso de disponer del plugin de Adobe. Por si a alguien le interesa, también hay un paquete llamado django-filebrowser-no-grappelli-and-uploadify (un fork del anterior sin Uploadify para los que odian Flash).

¿Funciona automágicamente con el admin de Django?

Si, sin duda. Siguiendo las instrucciones indicadas, django-tinymce es capaz de renderizar todos los campos de tipo TextField() con su WYSIWYG correspondiente para que puedas hacer de la edición de texto una tarea más sencilla.

¡Truenos!, no me funciona a la primera, ¿por qué?

Depende, yo las dos veces que tropecé fueron básicamente por lo mismo: los archivos javascript no estaban colocados en la ubicación correcta. Me había hecho un lío entre /media/ y /admin/media/ y no se habían cargado varios archivos necesarios para el correcto funcionamiento. Los .js estaban situados correctamente pero llaman a otros .js que estaban huérfanos. ¡Usa un Firebug o similar!.

No te creo

Tampoco lo pretendía, lo único que puedo hacer es presentar un pantallazo justificando toda esta parrafada que acabo de escribir: