lunes, 16 de abril de 2012

Tipos de datos que puede contener los modelos en django

Field types

The generated Form class will have a form field for every model field. Each model field has a corresponding default form field. For example, a CharField on a model is represented as a CharField on a form. A model ManyToManyField is represented as a MultipleChoiceField. Here is the full list of conversions:
Model field Form field
AutoField Not represented in the form
BigIntegerField IntegerField with min_value set to -9223372036854775808 and max_value set to 9223372036854775807.
BooleanField BooleanField
CharField CharField with max_length set to the model field's max_length
CommaSeparatedIntegerField CharField
DateField DateField
DateTimeField DateTimeField
DecimalField DecimalField
EmailField EmailField
FileField FileField
FilePathField CharField
FloatField FloatField
ForeignKey ModelChoiceField (see below)
ImageField ImageField
IntegerField IntegerField
IPAddressField IPAddressField
GenericIPAddressField GenericIPAddressField
ManyToManyField ModelMultipleChoiceField (see below)
NullBooleanField CharField
PhoneNumberField USPhoneNumberField (from django.contrib.localflavor.us)
PositiveIntegerField IntegerField
PositiveSmallIntegerField IntegerField
SlugField SlugField
SmallIntegerField IntegerField
TextField CharField with widget=forms.Textarea
TimeField TimeField
URLField URLField

Envió de correo electrónico desde DJANGO PYTHON creando una clases enviar email

Debes de crear una clase para envio de correo electrónico
clase enviarEmail.py

#! /usr/bin/python
# -*- coding: UTF-8 -*-
import smtplib 
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
import sys
from django.conf import settings

class ContenidoMensaje():
    titulo      = ""
    fecha       = None
   
    def __init__(self, titulo, fecha, detalle_mensaje):
        self.titulo     = titulo
        self.fecha      = fecha
        self.detalle_mensaje  = detalle_mensaje
   

class EmailHoteleria():
    emitente    = ""
    emisor      = "carluchojordan@gmail.com"
    detalle_mensaje   = None
   
    def __init__(self, emitente, emisor, detalle_mensaje):
        self.emitente           = emitente
        self.emisor             = emisor
        self.detalle_mensaje    = detalle_mensaje
   
    def enviarMensaje(self):
        msg = MIMEMultipart('alternative')
        c = ""
       
        html = """\
                    <html>
                      <head>
                         <meta http-equiv='Content-Type' content='text/html; charset=UTF-8'/>
                      </head>
                      <body>
                        <p style='color:white; font-size:18px; background:#3E96D6'>
                            titulo
                        </p>
                        <h2 style='color:black; font-size:16px'>"""+self.detalle_mensaje.titulo+""" </h2>
                        <div style="color:black; font-size:12px; border:#3E96D6">"""+(self.detalle_mensaje.detalle_mensaje)+"""</div>
                      </body>
                    </html>
                    """  
                   
        part2           = MIMEText(html, 'html', _charset='UTF-8')
        msg['Subject']  = (self.detalle_mensaje.titulo)
        msg['From']     = self.emitente
        msg['To']       = self.emisor
       
        msg.attach(part2)
           
        server = smtplib.SMTP('smtp.gmail.com:587') 
        server.starttls() 
        server.login("carluchojordan@gmail.com","XXXXXXXX")
       
        respuesta = server.sendmail(self.emitente, self.emisor ,msg.as_string()) 
        server.quit()
        return respuesta

   

en la vista debe de contener lo siguiente, instanciamos la clase email para poder enviar, observación debe de estar instalada el postfix para que se envie el email, sino lo tiene instalado va a salir error, para eso debe de instalarlo de la siguiente forma:

sudo apt-get install postfix



vista.py

#! /usr/bin/python
# -*- coding: UTF-8-*-

# +-----------------------------------------------------------------------------+
# |                                                                             |
# |     Nombre archivo:         views.py                                        |
# |     Autor:                  Carlos Jordàn Murillo                           |
# |                                                                             |
# |     Descripci?n:                                                            |
# |     Sirve para poder validar y verificar cuando un usuario intenta ingresar |
# |     en los templates.                                                       |
# |                                                                             |
# +-----------------------------------------------------------------------------+

from django.template import RequestContext
from django.shortcuts import render_to_response
from django.http import *
from random import choice
from string import letters
from django.contrib.auth.models import User
from django.views.decorators.csrf import csrf_exempt
from django.contrib.auth import authenticate
from django.core.mail import send_mail
from datetime import *
from django.http import *
from django import forms

from correo.CorreoElectronico import ContenidoMensaje, EmailHoteleria

import time
import datetime

def enviarEmail(request):
    today = datetime.date.today()
    detalleMensaje = ContenidoMensaje("Esto es una prueba", today, "Envio de prueba")
    enviar_mensaje = EmailHoteleria("carluchojordan@gmail.com","carluchojordan@gmail.com",detalleMensaje)
    enviar_mensaje.enviarMensaje()
    return HttpResponse("dsadfsa")
   

miércoles, 4 de abril de 2012

instalar django para ubuntu


Para instalar django en ubuntu necesitas los siguientes paquetes instalados:
sudo apt-get install apache2 libapache2-mod-python
sudo apt-get install mysql-server python-mysqldb
 
Después de haber instalado los paquetes que se requieren para django, descargamos el framework,
no necesitamos instalar el python ya que en ubuntu viene instalado por defecto 
cd ~/

svn co http://code.djangoproject.com/svn/django/trunk/ django_src
 
 
Después de eso necesitaras 
 
sudo cp -R ~/django_src/django/ /usr/local/lib/python2.7/dist-packages/ 

sudo cp ~/django_src/django/bin/django-admin.py /usr/local/bin
 
Y de ahí puedes revisar los otros tutoriales para mayor información de ¿Cómo crear una aplicación 
con django 

Instalar php en ubuntu

Para poder instalar php en ubuntu se requiere un conjunto de requerimientos, los cuales deben de instalarse los cuales son

$ sudo apt-get install apache2
$ sudo apt-get install mysql-server
$ sudo apt-get install php5
$ sudo apt-get install libapache2-mod-php5
$ sudo apt-get install php5-gd
$ sudo apt-get install php5-dom
$ sudo apt-get install php5-pgsql
$ sudo apt-get install php5-mysql

Al momento de instalar el mysql-server el instalador le va a pedir que ingrese una clave que en el momento de acceder a la base tendrá que ponerla.

Para iniciar los servicios de mysql u apache server ud puede acceder a la siguiente líneas de comando:

$ sudo /etc/init.d/mysql restart 
$ sudo /etc/init.d/apache2 restart
Si desea acceder a la configuración de la mysql puede acceder a la siguiente ruta, abriendo con gedit, vim o pico

$ sudo gedit /etc/mysql/my.cnf

Los archivos php deben de guardarse en la siguiente carpeta /var/www/

domingo, 1 de abril de 2012

Estadística de los navegadores más usados Ecuador, sudamerica


El navegador más usado al nivel europeo es el firefox



Estadística a nivel de Sudamerica 







Estadística a nivel de Ecuador




Mi primer proyecto en django 2da. Parte

Ahora nuestro objetivo es desarrollar nuestro nuevo modelo totalmente diferente al que viene por defecto en django, ya que ofrece una gama de posibilidades para desarrollar fácilmente como por ejemplo:
En la primera parte de este capitulo desarrollamos una administración en la cual nos permitía crea un usuario, contraseña; básicamente un módulo de usuarios, ahora vamos a interactuar con el admin del framework y crearemos

Accedamos a la carpeta de nuestro proyecto mediante la siguiente línea de comando:

    cd ~/django_projects/campeonato_nacional_futbol
    python manage.py startapp equipos


Al escribir estas líneas de código el framework creó en tu proyecto una carpeta que se llama equipos, la cual contiene los siguientes archivos:

  • __init__.py
  • models.py
  • test.py
  • views.py
Ahora nos concentraremos en el archivo models.py 


#! /usr/bin/python
# -*- coding: UTF-8 -*-
from django.db import models
from datetime import datetime
# Create your models here.

# Create your models here.


class EquipoFutbol(models.Model):
    id              = models.AutoField(primary_key=True)
    nombre          = models.CharField(max_length=140)
    presidente      = models.CharField(max_length=140)
    direccion       = models.CharField(max_length=100)
    logo            = models.ImageField(upload_to ="./", blank=True )
    
    def __unicode__(self):
        return self.nombre
    
    def logo_equipo(self):
        return "<img src='/static/uploads/"+ str(self.logo)+"' width='40px' />"
    
    #permite que el imprimir código html en la administración
    logo_equipo.allow_tags = True


Definimos nuestro modelo ahora tenemos que ir al archivo settings.py de nuestro proyecto para poder agregar nuestra nueva aplicación y agregarla en:



INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # Uncomment the next line to enable the admin:
    'django.contrib.admin',
    "equipos",
    # Uncomment the next line to enable admin documentation:
    # 'django.contrib.admindocs',
)

Después de haber agregado a "equipos" tenemos que sincronizar en nuestra base de datos con la siguiente línea de comando 

python manager.py syncdb

El framework como salida muestra:
Creating tables ...
Creating table equipos_equipofutbol
Installing custom SQL ...
Installing indexes ...
No fixtures found.

Ahora dentro de la carpeta de equipos que es la nueva aplicación que creamos debemos de crear un archivo cuyo nombre será equipo/admin.py deberás incluir las siguientes líneas:

#! /usr/bin/python
# -*- coding: ISO-8859-1 -*-
from django.contrib import admin
from campeonato_nacional_futbol.equipos.models import *
from django.contrib import messages


class AdminEquipos(admin.ModelAdmin):
    list_display = ("logo_equipo", "nombre", "presidente", "direccion")

admin.site.register(EquipoFutbol, AdminEquipos) 

Ejecutamos el servidor de nuestro proyecto con la siguiente línea de comando 
python manager.py runserver 8081


Reglas de validación
Automáticamente realiza las validaciones.



Ingresamos una imagen con su respectivo equipo

En la siguiente parte mostraremos relaciones entre tablas de muchos a muchos o de uno a muchos 

Cualquier pregunta a.
@calujord 
Twitter 




Sistemas Operativos Móviles más usados

Estadísticas de Sistemas Operativos Móviles en Ecuador

El sistema operativo que lidera a nivel Ecuatoriano esSymbianOs, el 30% el Android superando a IOs y blackberry


Estadística de Sistemas Operativos Móviles a Nivel Europeo
El sistema operativo que lidera a nivel europeo es el IOs, con más del 40% 




Estadística de Sistemas Operativos Móviles a Nivel Sudamericano
El sistema operativo que lidera a nivel sudamerica es symbianOS, con más del 30% 






Estadística de Sistemas Operativos Móviles a Nivel Norte America
El sistema operativo que lidera a nivel norte america es el IOs, con más del 40% 








Mi primer proyecto en django 1ra. Parte

Hola, en esta entrada desarrollaremos nuestro primer proyecto en django, espero que les guste


1.- Ir a la carpeta donde uds desarrollan sus proyectos en django en este caso yo la tengo configurada en  cd ~/django_projects

2.- Después de acceder a la carpeta de proyectos escribimos la siguiente línea de comando  django-admin.py startproject campeonato_nacional_futbol 


3.- Accedemos con línea de comando a la carpeta de nuestro proyecto por medio de la siguiente línea de comando  
cd campeonato_nacional_futbol
ls -l
al escribir la línea de comando ls -l podemos observar la lista de ficheros que se han creado.
  • __init__.py
  • manager.py (Administrador del proyecto)
  • settings.py  (Archivo de configuración)
  • urls.py         (urls en las cuales estará enlazada con la vista)
4.- Realizamos la configuración de nuestro proyecto abriendo con nuestro editor de texto favorito settings.py


Las bases de datos que puede utilizar son las siguientes, mysql, postgres, sqlike u oracle, pero los nombres que debe de añadir en ENGINE son los siguientes mysql, postgressql_psycopg2, sqlike3 u oracle; respectivamente.

En la sección de nombre de base de datos, observación debe de estar creada la base de datos, en el caso de que no este creada el framework determinará un error.

Para mayor información acerca de las zonas horarias puede acceder al siguiente link http://notes.alexdong.com/utc-timezone-daylight-saving-django-and-mysql,

a su vez si desea que django tenga multilenguaje Ud puede cambiar el lenguaje dependiendo del pais en el que se encuentre

5.- En nuestra carpeta proyecto creamos las siguientes carpetas:
  • media 
  • templates
  • static
Dentro de la carpeta de media crear 4 carpetas adicionales: 
  • css
  • js
  • uploads
  • images 
Son importantes debe de hacerlo sino ya que el framework no va a saber en dónde encontrar los css, js, uploads o las imagenes que ud desea añadir



El static_root es una variable la cual contendrá un string con la ruta en dónde se encuentra el directorio static de nuestro proyecto

El media_root es una variable la cual contendrá un string con la ruta en dónde se encuentra el directorio media de nuestro proyecto

El media_url es una variable la cual contendrá un string con el nombre con la cual se va a llamar en el html un ejemplo "www.example.com/media/" usualmente es donde están ubicados los archivos que sube la aplicación

El static_url es una variable la cual contendrá un string con el nombre con la cual se va a llamar en el html un ejemplo "www.example.com/static/" usualmente es donde están ubicados los archivos css, js e imagenes


El STATICFILES_DIRS es una tupla en la cual contendrá una lista de string que contendrán los archivos multimedia en este caso sólo hay uno que es media


7.- Ahora abrimos el archivo de configuración de urls.py que se encuentra en nuestro proyecto y descomentamos las siguientes líneas de comando

Descomentamos las líneas que estan en la figura anterior, y nos debe quedar lo siguiente:

from django.conf.urls.defaults import patterns, include, url

# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()


urlpatterns = patterns('',
# Examples:
# url(r'^$', 'campeonato_nacional_futbol.views.home', name='home'),
   
#url(r'^campeonato_nacional_futbol/',include('campeonato_nacional_futbol.foo.urls')),


    # Uncomment the admin/doc line below to enable admin documentation:
    # url(r'^admin/doc/', include('django.contrib.admindocs.urls')),


    # Uncomment the next line to enable the admin:
    url(r'^admin/', include(admin.site.urls)),
)


8.- Escriba las siguientes líneas de comando python manage.py syncdb
El framework responde lo siguiente:


Creating tables ...
Creating table auth_permission
Creating table auth_group_permissions
Creating table auth_group
Creating table auth_user_user_permissions
Creating table auth_user_groups
Creating table auth_user
Creating table django_content_type
Creating table django_session
Creating table django_site
Creating table django_admin_log


Después de eso le va a pedir que ingrese una cuenta de administrador.

9.- Ahora a ejecutar la línea de comando correr los servicios con esta línea de código python manager.py runserver 8081

10.- Abrimos el navegador de nuestra preferencia y accedemos a la siguiente url http://127.0.0.1:8081/admin/

y nos debe de aparecer lo siguiente




Ingrese el usuario y contraseña que anteriormente registró en línea de consola.


Módulos que crean por default.




Encriptación de las claves.



En la parte 2 diseñaremos un módulo nosotros mismos muchas gracias,
para cualquier inquietud a mi cuenta twitter o x email


carluchojordan@gmail.com
@calujord

Descripcion de un Modelo template view en Django - Python

Django es un framework poderoso, que nos permite disminuir el tiempo de desarrollo, utilizando una metodología que se conoce con el nombre de Modelo Vista Template


Básicamente los 3 componentes principales del framework tienen como función crear una comunicación entre ellos para extraer información vital de base de datos y presentarlas en el navegador

Model.- El modelo tiene como objetivo mapear a la base de datos de tal forma que crea una sincronización entre la base de datos y la aplicación, con el fin de mantener actualizada toda la información de las tablas, campos, y datos de nuestra base 

Vista.- La vista tiene como objetivo recibir el requerimiento que es enviado por el navegador, procesar la información, si es necesario realizar una petición al modelo para extraer un valor de base de datos u otro de los casos podría ser que sólo muestre un mensaje enviando un requerimiento al template

Template.- Es básicamente un archivo html que tiene como objetivo mostrar el pantalla de forma amigable la respuesta que es enviada por la vista



Url Dispatche.- Este es un componente adicional a nuestro framework pero a su vez uno de los más importantes porque es el encargado de recibir el requerimiento de una url escrita por el cliente y enviarla a su respectiva vista para procesar dicha información.