PEP8 + Sublime Text 3

Algo que deberías hacer es respetar PEP8, te dejo un pequeño “plugin” para Sublime Text 3 que te ayudará con eso. Lo primero que debes hacer es instalar lo siguiente, abres Sublime Text 3 vas al menú View + Show Console y pegas esto.

import urllib.request,os,hashlib; h = '7183a2d3e96f11eeadd761d777e62404' + 'e330c659d4bb41d3bdf022e94cab3cd0'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)

Esto te va a permitir instalar paquetes en tu sublime text, seguidamente la combinación de teclas ctrl + shift + p y en el cuadro que se despliega escribes install, seguidamente Buscas Python Flake8 Lint y comienza la instalación. Ya con eso tienes quien te avise si respetas o no el PEP8. Saludos y Happy Coding :)

Nginx + Uwsgi + Virtualenv + pip + Django en Debian 7

La puesta en producción de un proyecto desarrollado en Django, a veces suele ser complicada si se es un novato, sin embargo en esta oportunidad trataré de hacerte la vida más fácil con este post, espero sepas aprovecharlo y comentar.

Comenzamos instalando pip y virtualenv para crear nuestro entorno virtual de trabajo para Django, esto lo hacemos (dependiendo de la distribución de GNU/Linux que estés usando), en mi caso uso Debian GNU/Linux.

apt-get install python-pip python-virtualenv

Una vez instalado esto creamos nuestro entorno virtual con el siguiente comando

$virtualenv --no-site-packages mysite

Con esto se creara nuestro entorno virtual, con ello listo, procedemos a a activarlo con el comando
$cd mysite
$source bin/activate

Listo, vamos a instalar Django y las dependencias de nuestro proyecto.
$pip install Django==1.6.5

Creamos el proyecto con el comando de costumbre $django-admin.py startproject myproject

Ahora procederemos a instalar nuestro Nginx, la versión para este post es la 1.7 y de manera simple pueden descargarse un .deb desde este enlace NGINX

Ejecutan el .deb tal cual y con ello queda instalado el nginx, procedemos a configurarlo para que acepte nuestra aplicación hecha con Django, lo primero que debemos hacer es crear un archivo en /etc/nginx/conf.d que contendrá todo la información de nuestra app
server {
listen 9000;
server_name localhost;
access_log /var/log/myproject/myproject_access_log;
error_log /var/log/myproject/myproject_error_log;
root /home/usuario/dev/mysite/myproject;

location /static {
alias /home/usuario/dev/mysite/myproject/static;
}
location / {
uwsgi_pass unix:/tmp/uwsgi_myproject.sock;
include uwsgi_params;
}
}

Explicamos un poco, le estamos diciendo a nginx que escuche en el puerto 9000, configurando el access_log y error_log en una carpeta que debemos crear en la ruta /var/log/myproject, el root de nuestra app estará en /home/usuario/dev/mysite/myproject al igual que los archivos estáticos, luego simplemente le damos la location del uwsgi_pass e incluimos el uwsgi_params.

Ahora vamos a configurar el uwsgi, aún no lo hemos instalado, lo que debemos hacer es
$pip install uwsgi

Seguidamente debemos crear un archivo con la siguiente información
[uwsgi]
chdir=/home/usuario/dev/mysite/myproject
module=myproject.wsgi:application
socket=/tmp/uwsgi_myproject.sock # Debe ser la misma del archivo de configuración de Nginx
master=True
pidfile=/tmp/myproject.pid
vacuum=True
max-requests=5000
daemonize=/tmp/myproject.log

Ahora simplemente toca reiniciar el nginx /etc/init.d/nginx restart y reiniciamos el uwsgi ../bin/uwsgi --ini uwsgi.ini

Con esto ya tendrás tu sitio arriba.

Captura de pantalla - 220614 - 22:31:16¿Simple no?, cualquier duda comenta…

Cada vez que hagas un cambio debes reiniciar el uwsgi con el comando arriba descrito, buenas noches y happy coding :)

Taller DJANGO Nivel I en Ciudad Bolívar

Afiche Taller DJANGIO

Como parte de la creación de Lab42 Software C.A. hemos decidido lanzar en Ciudad Bolívar el taller DJANGO Nivel I. Dicho taller mostrará el framework  basado en Python para crear aplicaciones web de manera rápida, así mismo se abre una ventana para incorporar al mundo del desarrollo a jóvenes estudiantes de las universidades locales.

El Contenido del taller será:

  • Entendiendo como trabaja Django
  • El modelo de datos
  • El Shell de Django
  • Vistas (Views)
  • Plantillas (Templates) usando bootstrap
  • Los formularios
  • Los archivos estáticos (STATIC_URL)
  • Gestión de usuarios
  • Despliegue en el servidor web (virtualenv)

La duración del taller será de 16 horas presenciales y 6 horas de asesoría en línea. Puedes ver toda la información del taller en la siguiente dirección https://www.dropbox.com/s/7hflzt47zb4mhfu/Lab42-991-2013.pdf

Filtrar por fechas en Django

Un tema común, ¿como filtrar por fechas?, usando Django se pueden hacer estas consultas de manera muy simple, por ejemplo si queremos buscar por un rango de fechas que nos de el usuario hacemos lo siguiente

Model.objects.filter(fecha__range(f_inicial, f_cierre)

Donde f_inicial y f_cierre corresponden a los input text que defines en el formulario de búsqueda.

Ahora si lo que quieres es filtrar por día, tomado del server puedes hacer lo siguiente

hoy = date.today()

Model.objects.filter(fecha = hoy)

Lógicamente debes importar la librería datetime de python con el comando from datetime import *

Para hacer una búsqueda por mes y año, usando la librería datetime, podrías hacer lo siguiente

mes = datetime.now().month

Model.objects.filter(fecha__month = mes)

year = datetime.now().year

Model.objects.filter(fecha__year = year)

Espero que les sirvan para sus búsquedas en Django, saludos

Instalando Django-1.4

En esta oportunidad vamos a instalar Django para programar con python, como en su web se define “Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.”  

Simplemente haremos la instalación y la prueba de que todo esta perfectamente instalado con un pequeño sitio, vamos primero a descargar Django desde sus repositorios oficiales

wget -c https://www.djangoproject.com/download/1.4/tarball/

Una vez descargado, procedemos a descomprimirlo donde lo creamos conveniente

tar xzvf Django-1.4.tar.gz

Entramos al directorio que acabamos de descomprimir OJO: TODO ESTO COMO USUARIO NORMAL

cd Django-1.4

Una vez dentro del directorio procederemos a instalar el paquete, para ello nos colocamos como root y ejecutamos lo siguiente

python setup.py install

Con eso tenemos instalado nuestro Django, ahora vamos a crear nuestro primer proyecto en él y luego a probarlo, de ahí en adelante se viene la curiosidad para hacer de todo a este framework. Para crear nuestro primer proyecto ejecutamos COMO USUARIO NORMAL

django-admin.py startproject mysite

Se creará una carpeta con el nombre del proyecto (en este caso mysite), dentro de la carpeta están una serie de archivos

mysite/

      manage.py mysite/

      __init__.py settings.py

      urls.py

      wsgi.py

Para ejecutar este proyecto simplemente en la consola hacemos lo siguiente:

python manage.py runserver 8080

Development server is running at http://127.0.0.1:8080/
Quit the server with CONTROL-C.
[21/Jul/2012 18:53:44] “GET / HTTP/1.1″ 200 1961

Te aparecerá un mensaje como ese, no lo cierres, ve a tu navegador y entra en la dirección que te indica y el puerto 8080 y podrás ver tu proyecto corriendo sin problemas.

Luego continuo publicando lo que vaya logrando con este framework, espero les sirva :-)