jueves, 10 de octubre de 2013

Primera Aplicación

Una vez tenemos dajngo instalado podemos proceder a crear nuestra primera aplicación para ello nos dirigiremos a la carpeta donde queremos que se aloje nuestro proyecto y ejecutaremos el siguiente comando "django-admin.py startproject recetario". Este comando creará un carpeta con el contenido necesario para tener nuestra primera aplicación. Encontraremos una carpeta con este directorio:
-ejemplo
-ejemplo
-settings.py
-urls.py
-
-manage.py
-
Ahora mismo nuestra aplicación ya estaría funcionando si escribimos el siguiente comando estando el la ruta del proyecto "sudo python manage.py runserver", esto iniciara un servidor de desarrollo en local. Para acceder a nuestra aplicación deberemos acceder desde nuestro navegador a la direccion "http://121.0.0.1:8800" podremos ver la siguiente pagina


Si hubiera habido algún problema con el puerto se puede solucionar mediante el comando “python manage.py runserver 1234”.


Ahora procederemos con la configuracion basica en el settings.py:
Lo primero sera establecer la ruta del proyecto, para que cuando lo cambiemos de ruta, para ello escribiremos en la parte superior del settings.py las siguientes líneas:
import os
RUTA_PROYECTO = os.path.dirname(os.path.realpath(__file__))


Ahora se establecerá la codificación que se usara, que será la UTF-8 para ello ponemos en la parte superior del documento lo siguiente:
#encoding:utf-8
Añadir los administradores del proyecto, se puede añadir en:
ADMINS = (
    # ('Your Name', 'your_email@example.com'),
)
Simplemente poner:
ADMINS = (
(‘Francisco Martinez’,’francisco.mar.esp@gmail.com’),
)
El siguiente paso es  configurar la base de datos para ello nos dirigiremos a la parte del fichero que tiene las siguientes líneas:
DATABASES = {
    'default': {
       ‘ENGINE': 'django.db.backends.sqlite3',
'NAME': 'ejemplo.db',        
'USER': '',                      
'PASSWORD': '',                 
       'HOST': '',                    
'PORT': '',                      
}
}


Explicación de cada línea
-ENGINE: Será el motor de la base de datos que se usará en el proyecto.
-Name: Nombre de la base de datos
-User: El usuario de la base de datos
-Password: La contraseña del usuario de la base de datos
-host: El host donde esta alojada la base de datos
-Port: El puerto desde el que se accede a la base de datos
Ahora configuraremos el lenguaje y el uso horario de la aplicación, para ello nos dirigiremos a la parte del fichero donde se encuentran las siguientes líneas
TIME_ZONE = “America/Chicago”
LANGUAGE_CODE = “en-us”
Y sustituiremos por nuestros codigo
TIME_ZONE = “Europe-Madrid”
LANGUAGE_CODE = “es-ES”
Ahora toca configurar las aplicaciones que tendremos instalas, por defecto vienen las siguientes:
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',
   # Uncomment the next line to enable admin doc
   # 'django.contrib.admindocs',
)


Podremos agregar tanto aplicaciones creadas por nosotros como las realizadas por terceros.
Para no volver a esta parte del archivo crearemos la primera aplicación, para ello escribiremos en una terminal con ruta en
nuestro proyecto lo siguiente "python manage.py startapp principal"


Modificamos las aplicaciones instaladas para añadir la aplicación que hemos creado nueva y activar el admin de django:
INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.admin',
    'django.contrib.admindocs',
    ‘principal’,
)
Después de esto la estructura de nuestro proyecto quedará de la siguiente manera:
-ejemplo
-ejemplo
-__init__.py
-settings.py
-urls.py
-wsgi.py
-principal
-__init__.py
-models.py
-test.py
-views.py
-manage.py
Ahora que ya tenemos nuestra primera aplicación y hemos terminado de modificar el archivo de configuración procederemos a crear los modelos para nuestros datos, django por defecto trae bastante modelos creados, como los usuarios comentarios y otros. Por defecto los modelos de usuario vienen activados, pero para  poder crearlos fuera de la consola podemos usar el panel por defecto de django, para ello nos dirigiremos al archivo urls.py que se encuentra dentro de la carpeta ejemplo dentro de la carpeta del proyecto, que por defecto viene asi:
from django.db import models
# Create your models here.


Y le añadiremos las siguientes líneas:
from django.contrib.auth.models import User
Para que tengamos un usuario para acceder al panel, para ello utilizaremos el siguiente comando en la terminal estando en el directorio de nuestro proyecto, "sudo python manage.py syncdb". Cuando pregunte si queremos crear el usuario le damos a si y seguimos los pasos.
Una vez añadido esto, procederemos a actiavar la url de administracion, para ello se accedera al documento urls.py ubicado en la carpeta ejemplo y lo dejamos asi:


from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()


urlpatterns = patterns('',
url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
url(r'^admin/', include(admin.site.urls)),
)



y estando el servidor de pruebas en funcionamiento podremos acceder a la siguiente dirección http://127.0.0.1:8000/admin y tendremos el panel de administración de django en funcionamiento, metiendo nuestro usuario y clave estaremos dentro.


Una vez realizado esto tenemos la base para empezar con la aplicación.


Para la realización de un modelo de datos nuevo hay que modificar el models.py ubicado en la carpeta principal.

Este es el esquema más básico de modelo:

from django.db import models

class Libro(models.Model):
titulo = models.CharField(max_length=50)
autor = models.CharField(max_length=50)
contenido = models.TextField()
def __unicode__(self):
return self.titulo

Tras esto estará definido el objeto libro.


Para poder mostrar los libros guardados en la base de datos necesitaremos crear un html que servirá como template para mostrar los datos.
El primer paso sera crear la vista que manejara este html, para ello hara falta modificar el documento view.py ubicado en la carpeta principal.
Este es el esquema basico de vista:


from principal.models import Libro
from django.shortcuts import render_to_response


def lista_libros(request):
libros = Libro.objects.all()
return render_to_response('libros.html',{'lista':libros})


Una vez crada la vista tendremos que llamarla de alguna forma, esto se hace mediante las url para ello nos dirigiremos de nuevo a urls.py y añadir dentro del urlpatterns y añadir:
url(r'^$','principal.views.lista_libros'),


Antes de realizar el html habra que configurar el settings para que encuentre los html, para ello ahi que buscar TEMPLATE_DIRS y dejarlo asi:
TEMPLATE_DIRS = (
    os.path.join(RUTA_PROYECTO,'plantillas'),
)


Finalmente creamos la carpeta plantillas dentro de ejemplo para que quede asi:
-ejemplo
-manage.py
-principal
-ejemplo
-plantillas
-urls.py
...


Ahora nos pondremos con el html finalmente, un ejemplo sencillo sería el siguiente:
<html>
 <head>
<title>Libreria</title>
 </head>
 <body>
   <h1>Lista de Libros</h1>
{% for elemento in lista %}
<ul>
 <li><strong>{{elemento.titulo}}</strong></li>
 <li>{{elemento.autor}}</li>
 <li>{{elemento.contenido}}</li>
</ul>
{% endfor %}
 </body>
</html>



Lo que hace este html es recibir la lista que envía la lista e imprimirla mediante el for.


Por último hay que decirle al admin que existe un nuevo objeto para que aparezca en los objetos disponibles, para ello habrá que crear un documento dentro de la carpeta principal. El archivo se llamara admin.py y tendra el siguiente contenido:


from principal.models import Libro
from django.contrib import admin


admin.site.register(Libro)


Una vez realizado todo esto podemos ejecutar en la terminal de nuevo el comando “python manage.py syncdb” para refrescar la base de datos y reconozca el nuevo objeto libro.


Una vez hecho esto y con el servidor en funcionamiento podremos acceder al admin para crear objetos o al index para ver la lista de los objetos.


Con esto el tutorial ha finalizado, posteriormente se publicará tutoriales para extender más las diferentes parte del tutorial y cosas nuevas.

No hay comentarios:

Publicar un comentario