Considero que hay una infinidad de tutoriales por la red relacionados con Django así que me limitare a poner referencias que me vayan sido utiles así como algunos comandos que sean los que más voy utilizando, espero les sea de utilidad, igual se aceptan sugerencias y correcciones :)
TERMINAL
Crear Proyecto
$ django-admin.py startproject [nombreproyecto]
Crear App
$ python manage.py startapp [nombreapp]
Validar Modelos
$ python manage.py validate
Sincronizar base de datos
$ python manage.py syncdb
Crear superusuario
$ python manage.py createsuperuser
Correr el Servidor
$ python manage.py runserver 192.168.0.1:80
NOTA: La ip y el puerto son opcionales si no se especifican por omisión correo en 127.0.0.1:8000
CARACTERES Y FORMATOS
Codificación UTF8
Al inicio del archivo colocar
# -*- encoding: utf-8 -*-
MODELOS
Ejemplo archivo: models.py
from django.db import models
from django.contrib.auth.models import User
class Refs():
sexo = ((‘F’,‘Femenino’),(‘M’,‘Masculino’))
estado_civil = ((‘S’,‘Soltero’),(‘C’,‘Casado’),(‘U’,‘Unión Libre’),(‘D’,‘Divorciado’),(‘V’,‘Viudo’))
class Persona(models.Model):
usuario = models.ForeignKey(User)
nombre = models.CharField(max_length=100)
clave = models.IntegerField(verbose_name=u’La Clave’)
municipio = models.ForeignKey(Municipio)
tipo = models.ForeignKey(Tipos,null=True,blank=True)
cursos = models.ManyToManyField(Curso)
universidades = models.ManyToManyField(Universidades, through=‘Uni_Per’)
activo = models.BooleanField(default=True)
obs = models.TextField(max_length=500)
sexo = models.CharField(max_length=1, choices=Refs.sexo, default='F')
def __unicode__(self):
return (u’ %s >> %s’) % (self.nombre, self.tipo)
class Meta:
verbose_name=u'Descripción Singular del Modelo'
verbose_name_plural=u'Descripción Plural'
class Curso(models.Model):
nombre = models.CharField(max_length=50)
class Universidad(models.Model):
nombre = models.CharField(max_length=50)
class Uni_Per(models.Model):
persona = models.ForeignKey(Persona)
universidad = models.ForeignKey(Universidad)
promedio = models.DecimalField(decimal_places=2,max_digits=4)
titulacion = models.DateField(verbose_name=u’Fecha de Titulación’)
ADMINISTRADOR DE DJANGO
Ejemplo archivo admin.py
Agregar un modelo al admin
from django.contrib import admin
from catalogos.models import *
admin.site.register(Universidad)
admin.site.register(Persona)
admin.site.register(Curso)
VISTAS
Ejemplo de un archivo views.py
from django.http import HttpResponse
import datetime
def fecha_actual(request):
now = datetime.datetime.now()
html = "El día de hoy es %s." % now
return HttpResponse(html)
URL
Ejemplo de un archivo urls.py, que tiene activado además el admininistrador de Django.
from django.conf.urls import patterns, include, url
# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
# Vista inicial
url(r'^$', 'miapp.views.fecha_actual', name='fecha_actual'),
# Uncomment the next line to enable the admin:
url(r'^control/', include(admin.site.urls)),
)
Otras utilerías
Usar bootstrap en Django
El API Form de Django
martes, 22 de enero de 2013
viernes, 18 de enero de 2013
Django Error 'str' object is not callable base.py in get_response
Después de desarrollar una vista me tope con este error que parece ser algo sencillo pero no encontraba como solucionarlo, bien el detalle era que en mi archivo url.py tenía:
url(r'^prueba/', 'prueba_view', name='prueba'),
Para solucionarlo la línea debe ir así:
url(r'^prueba/', 'campo.views.prueba_view', name='prueba'),
En otras palabras se debe especificar la ruta completa para no tener problema alguno.
Espero te sea de utilidad !
Referencias:
http://stackoverflow.com/questions/4668040/django-str-object-is-not-callable
url(r'^prueba/', 'prueba_view', name='prueba'),
Para solucionarlo la línea debe ir así:
url(r'^prueba/', 'campo.views.prueba_view', name='prueba'),
En otras palabras se debe especificar la ruta completa para no tener problema alguno.
Espero te sea de utilidad !
Referencias:
http://stackoverflow.com/questions/4668040/django-str-object-is-not-callable
martes, 15 de enero de 2013
Firebird agregar usuarios o crear usuarios con gsec
Por lo que estuve buscando no existe una instrucción SQL para crear un usuario utilizando Interbase o Firebird 1.5 todo debe ser utilizando el comando GSEC aquí veremos como emplearlo:
$ gsec -user sysdba -password tucontraseña
gsec>add usuarionuevo -pw passwordusuarionuevo -lname etiquetanombre
gsec>quit
$ _
Listo con eso el usuario queda creado ahora para darle permisos si podemos utilizar sql:
GRANT SELECT, UPDATE, INSERT, DELETE ON USUARIOS TO usuarionuevo
Con eso se le aplican los permisos sobre la tabla usuarios al usuario nuevo.
Espero te sea de utilidad !
Más información:
http://www.destructor.de/firebird/gsec.htm
http://www.firebird.com.mx/descargas/documentos/tema_5-administracion_y_seguridad.pdf
http://www.firebirdsql.org/refdocs/langrefupd25-security-grant-revoke.html
$ gsec -user sysdba -password tucontraseña
gsec>add usuarionuevo -pw passwordusuarionuevo -lname etiquetanombre
gsec>quit
$ _
Listo con eso el usuario queda creado ahora para darle permisos si podemos utilizar sql:
GRANT SELECT, UPDATE, INSERT, DELETE ON USUARIOS TO usuarionuevo
Con eso se le aplican los permisos sobre la tabla usuarios al usuario nuevo.
Espero te sea de utilidad !
Más información:
http://www.destructor.de/firebird/gsec.htm
http://www.firebird.com.mx/descargas/documentos/tema_5-administracion_y_seguridad.pdf
http://www.firebirdsql.org/refdocs/langrefupd25-security-grant-revoke.html
miércoles, 9 de enero de 2013
Conectar Python con Firebird
Hoy definitivamente ando bien Python ;) ... El siguiente documento es para conectar Python con Firebird, lo realizo en Mac OSX pero debiera ser similar para Windows:
Para poder realizar la conexión Python - Firebird, primero es importante tener instalado el Firebird en el equipo la versión que utilizaremos debe ser compatible con la versión 2 o superior ...
http://sourceforge.net/projects/firebird/?source=dlp
Una vez que se haya descargado debemos ejecutar la el pkg de instalación.
Posteriormente es probable que tengamos que editar el ~/.bash_profile con las siguientes líneas:
http://www.firebirdsql.org/file/documentation/papers_presentations/html/paper-fb-macosx-install.html
Uso de la terminal:
http://www.firebirdsql.org/manual/es/qsg15-es-connecting.html#d0e1215
Una vez instalado el Firebird, existen varios controladores (Driver) para conectar python con firebird, pero este fue el que mejor me dio resultado ya que esta desarrollado usando solo python:
https://github.com/nakagami/pyfirebirdsql/archive/master.zip
Más información aquí: https://github.com/nakagami/pyfirebirdsql
Una vez descargado y descomprimido entramos al directorio y corremos el siguiente comando:
$ sudo python setup.py build
Si hubo errores, después del comando anterior revisa la conectividad y funcionamiento de firebird, en caso de que todo haya salido bien, entonces procedemos con el siguiente comando:
$ sudo python setup.py install
Podemos probar que haya quedado instalada la librería usando el shell de python e importando la librería firebirdsql.
El siguiente fragmento de código es para ejemplo de conectividad:
_________________________________
# Conectarse a la base de datos de firebird
import firebirdsql as fb
# Conectar con la base de datos
con = fb.connect(dsn='127.0.0.1:c:\\base.gdb',user='miusuario', password='miclave')
# Se crea el cursor de la conexión
cur = con.cursor()
# Ejecuta el comando SQL
cur.execute(" select clave, nombre from municipios ")
# Imprime los municipios encontrados en la base de datos ...
for row in cur:
print str(row[0])," > ",str(row[1])
_________________________________
Sitios de Referencia:
http://maxirobaina.tumblr.com/post/27867131429/firebird-sql-estado-del-driver-para-python
http://nakagami.github.com/pyfirebirdsql/installation.html
[ Tutorial de la librería ] http://nakagami.github.com/pyfirebirdsql/tutorial.html
http://www.fpress.com/revista/Num0704/unart6.htm
http://stackoverflow.com/questions/11787012/how-to-install-mysqldb-on-mountain-lion
[ Tutorial del terminal ] http://www.firebirdsql.org/manual/es/qsg15-es-connecting.html#d0e1215
Espero te sea de utilidad !
Para poder realizar la conexión Python - Firebird, primero es importante tener instalado el Firebird en el equipo la versión que utilizaremos debe ser compatible con la versión 2 o superior ...
http://sourceforge.net/projects/firebird/?source=dlp
Una vez que se haya descargado debemos ejecutar la el pkg de instalación.
Posteriormente es probable que tengamos que editar el ~/.bash_profile con las siguientes líneas:
export FIREBIRD_HOME=/Library/Frameworks/Firebird.framework/Resources export PATH=$PATH:$FIREBIRD_HOME/binMás información en:
http://www.firebirdsql.org/file/documentation/papers_presentations/html/paper-fb-macosx-install.html
Uso de la terminal:
http://www.firebirdsql.org/manual/es/qsg15-es-connecting.html#d0e1215
Una vez instalado el Firebird, existen varios controladores (Driver) para conectar python con firebird, pero este fue el que mejor me dio resultado ya que esta desarrollado usando solo python:
https://github.com/nakagami/pyfirebirdsql/archive/master.zip
Más información aquí: https://github.com/nakagami/pyfirebirdsql
Una vez descargado y descomprimido entramos al directorio y corremos el siguiente comando:
$ sudo python setup.py build
Si hubo errores, después del comando anterior revisa la conectividad y funcionamiento de firebird, en caso de que todo haya salido bien, entonces procedemos con el siguiente comando:
$ sudo python setup.py install
Podemos probar que haya quedado instalada la librería usando el shell de python e importando la librería firebirdsql.
El siguiente fragmento de código es para ejemplo de conectividad:
_________________________________
# Conectarse a la base de datos de firebird
import firebirdsql as fb
# Conectar con la base de datos
con = fb.connect(dsn='127.0.0.1:c:\\base.gdb',user='miusuario', password='miclave')
# Se crea el cursor de la conexión
cur = con.cursor()
# Ejecuta el comando SQL
cur.execute(" select clave, nombre from municipios ")
# Imprime los municipios encontrados en la base de datos ...
for row in cur:
print str(row[0])," > ",str(row[1])
_________________________________
Sitios de Referencia:
http://maxirobaina.tumblr.com/post/27867131429/firebird-sql-estado-del-driver-para-python
http://nakagami.github.com/pyfirebirdsql/installation.html
[ Tutorial de la librería ] http://nakagami.github.com/pyfirebirdsql/tutorial.html
http://www.fpress.com/revista/Num0704/unart6.htm
http://stackoverflow.com/questions/11787012/how-to-install-mysqldb-on-mountain-lion
[ Tutorial del terminal ] http://www.firebirdsql.org/manual/es/qsg15-es-connecting.html#d0e1215
Espero te sea de utilidad !
Enviar correo electrónico desde python en gmail con smtplib
Con el requerimiento de enviar correos automatizados me vi en la necesidad de este script en python les dejo parte del código ...
_________________________________
# -*- coding: utf8 -*-
#Importar la librería de SMTP ...
import smtplib
#Tu correo o el correo que enviará los mensajes ...
FROM = "micorreo1@gmail.com"
#Lista de correos a enviar ...
TO = ['destinatario1@gmail.com','destinatario2@gmail.com']
#Correos que se verán en la sección PARA del correo ...
TOstr = 'micorreo1@gmail.com'
#Comandos que serán enviandos al servidor de gmail ...
server = smtplib.SMTP('smtp.gmail.com',587)
server.ehlo()
server.starttls()
server.ehlo
#Es necesario logearse con el servidor utilizando tu cuenta micorreo1@gmail.com y tu clave.
server.login(FROM,'miclave')
# Crear el encabezado del correo
header = 'To:' + TOstr + '\n' + 'From: ' + FROM + '\n' + 'Subject:Reporte hoy \n'
print header
# Unir el encabezado con el mensaje ...
msg = header + '\n Esta es una prueba \n\n'
# Una vez que se haya pasado lo anterior ahora si a enviar ...
server.sendmail(FROM,TO,msg)
print "Listo !"
# Cerramos sesion ...
server.quit()
_________________________________
Estos sitios me sirvieron de referencia:
http://www.mkyong.com/python/how-do-send-email-in-python-via-smtplib/
http://stackoverflow.com/questions/6941811/send-email-to-multiple-recipients-from-txt-file-with-python-smtplib
Espero te sea de utilidad, saludos !
Suscribirse a:
Entradas (Atom)