construccion - jjvillavicencio/historias-clinicas-iess-loja GitHub Wiki

Construcción de la Aplicación

  1. Home
  2. Tema
  3. Objetivos
  4. [Marco Teórico](marco teorico)
  5. Descripción del problema
  6. Modelado de la base de datos
  7. Construcción de la Aplicación
  8. Entorno Django
    1. Instalación de librerías.
    2. Configurar proyecto.
    3. Configurar PostgreSql
  9. Templates Django
    1. Ajustes generales.
    2. Añadir Bootstrap.
    3. Añadir página home
  10. Conclusiones
  11. Recomendaciones
  12. Bibliografía
  13. Anexos

Django es un framework de desarrollo web de código abierto, escrito en Python, que respeta el patrón de diseño conocido como Modelo–vista–controlador.

Instalación de librerias

[Arriba]

  • Instalación Python:

    sudo apt-get update

    sudo apt-get install python-dev

    sudo apt-get install python-setuptools

  • Instalar gestor de paquetes:

    sudo easy_install pip

  • Instalar gestor de entornos virtuales

    sudo pip install virtualenv

  • Instalar librerias para PostgreSql

    sudo apt-get install postgresql-server-dev-9.5

    sudo apt-get install postgresql postgresql-contrib

Configurar proyecto

[Arriba]

  • Crear una carpeta para el proyecto (HistoriasClinicasProject)

    mkdir HistoriasClinicasProject

  • Ingresamos a la carpeta

    cd HistoriasClinicasProject

  • Creamos un entorno virtual (historias)

    virtualenv historias

  • Iniciamos el entorno virtual

    source historias/bin/activate

  • Instalamos Django 1.8

    pip install Django==1.8

  • Crear proyecto en Django (HistoriasClinicas)

    historias/bin/django-admin.py startproject HistoriasClinicas

  • Ingresamos a la carpeta del proyecto Django (HistoriasClinicas)

    cd HistoriasClinicas/

  • Instalar conectores para PostgreSql

    pip install psycopg2

Configurar PostgreSql

  • Editamos el archivo settings.py que se encuentra en la carpeta HistoriasClinicas

DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'historias_clinicas_iess', 'USER': 'academias', 'PASS': 'academias', } }


* Migrar Base de Datos

`python manage.py migrate`

* Crear super usuario

`python manage.py createsuperuser`

* Instalar shell interactivo Python

`pip install ipython`

* Obtener modelo de la Base de Datos

`python manage.py inspectdb > mimodelo.py`

* Cerar aplicación *`HistoriasClinicasApp`*

`python manage.py startapp HistoriasClinicasApp`

* Copiar modelo del archivo *`mimodelo.py`* al archivo *`models.py`*

* Añadir app *`HistoriasClinicasApp`* en el archivo *`settings.py`*

```py
INSTALLED_APPS = (
   'django.contrib.admin',
   'django.contrib.auth',
   'django.contrib.contenttypes',
   'django.contrib.sessions',
   'django.contrib.messages',
   'django.contrib.staticfiles',
   'HistoriasClinicasApp',
)
  • Hacer una migracion

    python manage.py makemigrations HistoriasClinicasApp

    python manage.py migrate

  • Compiar los siguientes modelos en el archivo admin.py :

    from HistoriasClinicasApp.models import *
    # Register your models here.
    admin.site.register(Pais)
    admin.site.register(Provincia)
    admin.site.register(Canton)
    admin.site.register(Parroquia)
    admin.site.register(TipoBeneficiario)
    admin.site.register(Contacto)
    admin.site.register(Paciente)
    admin.site.register(HistoriaClinica)
    
  • Iniciamos el servidor para probar nuestro proyecto:

    phon manage.py runserver

Templates

Se va a configurar el uso de archivos html como templates para la presentación de los datos de nuestro proyecto en Django, la ventaja que nos facilitara el uso de templates será que no tendremos que repetir cierta estructura de la pagina que se repetirá varias veces.

Nota: Vamos a trabajar en el directorio HistoriasClinicasProject/HistoriasClinicas/

Ajustes generales

[Arriba]

  • Creamos una carpeta templates dentro de la carpeta HistoriasClinicasApp:

     mkdir HistoriasClinicas/templates
    
  • Configurar la carpeta templates en el archivo HistoriasClinicas/settings.py

    Modificamo el campo 'DIRS':[]

    TEMPLATES = [
     {
         'BACKEND': 'django.template.backends.django.DjangoTemplates',
         'DIRS': [os.path.join(os.path.dirname(__file__),'templates'),],
         'APP_DIRS': True,
         'OPTIONS': {
             'context_processors': [
                 'django.template.context_processors.debug',
                 'django.template.context_processors.request',
                 'django.contrib.auth.context_processors.auth',
                 'django.contrib.messages.context_processors.messages',
             ],
         },
     },
    ]
    

Añadir Bootstrap

[Arriba]

  • Creamos una carpeta de nombre static :

    mkdir static
    
  • Añadimos al final del archivo HistoriasClinicas/settings.py :

    STATICFILES_DIRS=(
      os.path.join(BASE_DIR, 'static/'),
    )
    
  • Descargamos Bootstrap de su página y lo descomprimimos en la carpeta /static

Añadir página home

[Arriba]

  • Creamos archivo index.html en la carpeta HistoriasClinicasApp/templates, el contenido del archivo lo encontramos aquí

  • Crear vista, en el archivo /HistoriasClinicasApp/views.py importamos lo siguiente:

    from django.shortcuts import render, render_to_response, RequestContext
    
  • En el mismo archivo definimos la vista para el index de la siguiente forma:

    def index_view(request):
      return render_to_response('index.html', context=RequestContext(request))
    
  • Enlazamos las urls de la aplicación,en el archivo /HistoriasClinicas/urls.py en a sentencia urlpatterns = [] añadimos:

    url(r'^', include('HistoriasClinicasApp.urls')),
    
  • En la carpeta /HistoriasClinicasApp creamos un archivo llamado urls.py

  • En el archivo creado añadimos lo siguiente:

    from django.conf.urls import patterns, url
    
    urlpatterns = patterns('HistoriasClinicasApp.views',
    )
    
  • En el mismo archivo en la sentencia urlpatterns = patterns('HistoriasClinicasApp.views',) añadir lo siguiente:

    url(r'^$', 'index_view', name='index'),
    
  • Iniciamos el servidor para probar nuestro proyecto:

    python manage.py runserver

  • Abrimos la aplicación en el navegador

    http://127.0.0.1:8000/

[Arriba]