django tuto

Download Django Tuto

Post on 10-Nov-2015

10 views

Category:

Documents

6 download

Embed Size (px)

DESCRIPTION

tutorial django espaol

TRANSCRIPT

  • TUTORIAL DJANGO

    Escribiendo mi primera aplicacin con Django Vamos a aprender con el ejemplo.

    A lo largo de este tutorial, le guiaremos a travs de la creacin de una aplicacin bsica de la encuesta.

    Se va a constar de dos partes:

    Un sitio pblico que permite a la gente ver las encuestas y votar en ellas. Un sitio de administracin que le permite agregar, modificar y eliminar las encuestas.

    Bueno empezaremos por la instalacin en mi caso instalaremos Django en Mac:

    Python ya viene instalado en mac al igual que en Linux, en Windows si les toca instalar Python.

    Comandos en consola

    $python

    Exit

    $sudo easy_install pip

    $sudo pip install virtual env

    $ls

    $pwd

    $cd carpeta/

    $cd ../

    $virtualenv entorno

    $source bin/activate

    (entorno)$pip freeze

    (entorno)$pip install django==1.45

    (entorno)$pip install django upgrade

    Realiza

    Muestra la versin de python, y entra al Shell

    Sale del Shell de python

    Instala pip

    Instala virtualenv

    Para ver los archivos contenidos

    Ve la direccin en donde te encuentras

    Accede a carpeta

    Sale de carpeta

    Crea un entorno virtual

    Entras a la carpeta y activas el entorno virtual

    Ves lo que tienes instalado

    Instalas django 1.45

    Actualizas django a la versin mas reciente

  • Creacin de un proyecto

    Creamos el proyecto con la linea

    $ django-admin.py startproject miproyecto

    Configuracin de base de datos

    Ahora, editar miproyecto/settings.py. bueno para comenzar solo comenzaremos la ubicacin de nuestra regin y si deseamos la en nombre y tipo de base de datos a usar, para mi zona horaria pondr:

    LANGUAGE_CODE = es-pe

    Posterioemente y obedeciendo a django 1.7 tenemos que migrar la bd.

    $ Python manage.py migrate

    El servidor de desarrollo

    Vamos a echarle un vistazo a nuestro servidor de desarrollo con:

    $ python manage.py runserver

    Con esto accedemos a http://127.0.0.1:8080/ y ya debemos de tener el servidor corriendo

    La creacin de modelos

    Ahora que su entorno - un "proyecto" - est configurado, ya est listo para empezar a hacer el trabajo.

    Cada aplicacin se escribe en Django consiste en un paquete de Python que sigue a una cierta convencin. Django viene con una

    utilidad que genera automticamente la estructura de directorios bsica de una aplicacin, para que pueda centrarse en la escritura de

    cdigo en lugar de crear directorios.

    Creamos nuestra primera aplicacin, por lo pronto junto a manage.py

    $ python manage.py startapp encuestas

    El primer paso para escribir una aplicacin Web de base de datos en Django es definir sus modelos - esencialmente, su diseo de base

    de datos, con metadatos adicionales.

    En nuestra sencilla aplicacin encuesta, vamos a crear dos modelos: Pregunta y Opcion. Una pregunta tiene una pregunta

    y una fecha de publicacin. Una Opcion tiene dos campos: el texto de la eleccin y un recuento de votos. Cada opcin se

    asocia con una pregunta.

    Estos conceptos estn representados por las clases de Python simples. Editar el archivo de encuestas/models.py por lo

    que se ve as:

    encuestas/models.py

    from django.db import models

    class Pregunta(models.Model):

    pregunta_texto = models.CharField(max_length=200)

    public_fech = models.DateTimeField('fecha publicado')

    class Opcion(models.Model):

    pregunta = models.ForeignKey(Pregunta)

    opcion_texto = models.CharField(max_length=200)

  • votos = models.IntegerField(default=0)

    nos falta decirle a Django que tenemos una aplicacin nueva, esto lo hacemos con:

    miproyecto / settings.py

    INSTALLED_APPS = (

    'Django.contrib.admin',

    'Django.contrib.auth',

    'django.contrib.contenttypes',

    'django.contrib.sessions',

    'django.contrib.messages',

    'django.contrib.staticfiles',

    'encuestas',

    )

    Le decimos a django que hicimos modificaciones en el modelo con:

    $ python manage.py makemigrations encuestas

    Ya esta, ahora incluso podramos ver nuestra bd en mysql con:

    $ python manage.py sqlmigrate encuestas 0001

    Escribimos nuevamente migrar para crear los modelos en cuadro de la base de datos

    $ python manage.py migrate

    Jugando con la API

    Ahora, vamos a saltar en la terminal de Python interactiva y jugar con la API gratuita Django te da. Para invocar el shell de Python,

    utilice este comando:

    $ python manage.py shell

    Importamos el django

    >>> import django

    >>> django.setup()

    >>> from encuestas.models import Pregunta, Opcion # importamos las clases del

    modelo de la bd.

    # consultar preguntas.

    >>> Pregunta.objects.all()

    []

    # Crear una pregunta.

    # para la fecha necesitaremos importar timezone

    >>> from django.utils import timezone

    >>> q = Pregunta(pregunta_texto="estoy haciendo bien", publi_fech=timezone.now())

    # guardamos los valores en q y luego lo guardamos.

    >>> q.save()

    # preguntamos el id, deveria de ser 1

    >>> q.id

    1

  • # para ver los atrivutos

    >>> q.pregunta_texto

    "estoy hacienda bien"

    >>> q.publi_fech

    datetime.datetime(2012, 2, 26, 13, 0, 0, 775217, tzinfo=)

    # cambiar los atributos del valor y guardar

    >>> q.pregunta_texto = "otra pregunta

    >>> q.save()

    # imprimir todas las preguntas de la bd

    >>> Pregunta.objects.all()

    []

    Espera un minuto . Es, absolutamente, una representacin poco til de este

    objeto. Vamos a arreglar eso editando el modelo de preguntas (en el archivo de encuestas / models.py) y la

    adicin de un __str__()mtodo para la Pregunta y Eleccin:

    encuestas/models.py

    from django.db import models

    class Pregunta(models.Model):

    # ...

    def __str__(self): # __unicode__ on Python 2

    return self.pregunta_texto

    class Opcion(models.Model):

    # ...

    def __str__(self): # __unicode__ on Python 2

    return self.opcion_texto

    --------------------------del inicio y del fin----------------------

    >>> from encuestas.models import Pregunta, Opcion #

    >>> Pregunta.objects.all() # funciona las funciones

    __str__. >>> Pregunta.objects.filter(id=1) >>>

    Pregunta.objects.filter(pregunta_texto__startswith='otr

    a') # probando funcin creados recien >>> from

    django.utils import timezone >>> current_year =

    timezone.now().year >>>

    Pregunta.objects.get(publi_fech__year=current_year) si

    funciona correctamente. >>> Pregunta.objects.get(id=2)

    Traceback (most recent call last): ...

    DoesNotExist: Question matching query does not exist.

    # no existen mas registros. >>>

    Pregunta.objects.get(pk=1)

  • opciones. >>> q.opcion_set.create(opcion_texto='No

    mucho', votos=0) se creo >>>

    q.opcion_set.create(opcion_texto='el cielo',

    votos=0) >>> c =

    q.opcion_set.create(opcion_texto='a jakear', votos=0)

    # lo guardamos en c. >>> c.pregunta y accedemos a las

    opciones. >>> q.opcion_set.all() y vemos nuestras 3

    opciones >>> q.opcion_set.count() 3 # cuentra nuestras

    opciones. >>>

    Opcion.objects.filter(pregunta__publi_fech__year=curren

    t_year) las opciones para el filtrado de las opciones

    en fecha de pregunta. Se usa delete para borrar >>> c =

    q.opcion_set.filter(opcion_texto__startswith='a

    jakear') >>> c.delete()

    creando el sitio de administracin

    Creacin de un usuario admin

    Primero tendremos que crear un usuario que puede iniciar sesin en el sitio de

    administracin. Ejecute el siguiente comando:

    $ python manage.py createsuperuser

    ponemos el nombre del admin

    Username: root

    Onemos una direccin de correo

    Email address: admin@example.com

    Y para finalizar un pasword 2 veces:

    Password: ********** Password (again): *********

    Superuser created successfully.

    inicie el servidor de desarrollo

    El sitio de administracin de Django est activada por defecto. Vamos a empezar el servidor de

    desarrollo y explorarlo.

    $ Python manage.py runserver

  • Ahora, abra un navegador Web y vaya a "/ admin /" en su dominio local - por

    ejemplo, http://127.0.0.1:8000/admin/ . Usted debe ver la pantalla de inicio de sesin del

    administrador:

    Haga la aplicacin sondeo modificable en el administrador

    Pero dnde est nuestra aplicacin encuesta? No es mostrada en la pgina de ndice del administrador.

    Slo una cosa que hacer: tenemos que decirle al administrador que los objetos de preguntas tienen una

    interfaz de administracin. Para ello, abra el archivo de encuestas/admin.py, y editarlo para tener este

    aspecto:

    encuestas/admin.py

    from django.contrib import admin

    from encuestas.models import Pregunta

    admin.site.register(Pregunta)

    Personalizar el formulario de administracin

    Tmese unos minutos para maravillarse con todo el cdigo que usted no tiene que escribir. Al

    registrar el modelo de preguntas con admin.site.register (Pregunta), Django fue

    capaz de const