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%