Mostrando entradas con la etiqueta django. Mostrar todas las entradas
Mostrando entradas con la etiqueta django. Mostrar todas las entradas

miércoles, diciembre 02, 2015

Configurando virtualenv para Django en Ubuntu

Procedemos a su instalación:
sudo apt-get install python-virtualenv 

Configuramos virtualenv en el directorio django1.7, pues vamos a crear una instalación de Django con la versión 1.7 para nuestro proyecto. Accediendo al directorio que genera virtualenv podremos activar nuestro entorno:

virtualenv django1.7
cd django1.7/
source bin/activate

Este directorio contendrá todas las librería para la configuración de python con los paquetes que nosotros deseemos, no es necesario meter nuestro proyecto dentro de dicha carpeta.

Ahora podemos instalar Django y todas las librerías que necesitemos para nuestro proyecto, ojo tenemos que ver que el prompt ha cambiado y muestra que estamos trabajando con el entorno virtualenv que hemos activado:

(django1.7)$ pip install django==1.7

(django1.7)$pip install django_tables2
(django1.7)$pip install django_filter
(django1.7)$pip install xhtml2pdf

La instalación de mysql para utilizarlo con Django requiere de instalar el paquete de desarrollo de mysql y el compilador gcc:

(django1.7)$sudo apt-get install libmysqlclient-dev
(django1.7)$sudo apt-get install gcc
(django1.7)$pip install MySQL-python


Si el proyecto se va lanzar desde apache con WSGI, tendremos que añadir al path de python el directorio del virtualenv:

WSGIDaemonProcess hammam python-path=/home/usuario/miproyecto:/home/usuario/django1.7/lib/python2.7/site-packages

viernes, septiembre 19, 2014

Configurando el entorno de desarrollando para Django en Ubuntu GNU/Linux

Python ya estará instalado en nuestra versión de Ubuntu, sólo tendremos que instalar Django, pero la versión disponible para Ubuntu no suele ser la más reciente de Django así que utilizaremos:

sudo apt-get install python-pip
sudo pip install Django


También podemos instalar ipython para tener una shell más rica: 

sudo apt-get install ipython

podemos verificar que se ha instalado correctamente verificando la versión instalada:

django-admin --version


También necesitamos tener instalado java versión 7, con OpenJDK:

sudo apt-get install icedtea-7-plugin openjdk-7-jre
 
con Oracle Java:
 
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer

Obtener Eclipse IDE for Java EE Developers, actualmente la última versión es Luna:

http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/lunar

Instalar PyDev desde Eclipse, seleccionamos Help en el menú y luego Install new software ... donde añadimos una nueva fuente de software con la dirección web:
http://pydev.org/updates

y a instalar se ha dicho... 


Para indicarle a PyDev que utilice Python y Django instalado, tenemos que acceder al siguiente dialogo Window->Preferences->PyDev->Interpreter-Python y pulsar sobre el botón Auto Config y finalizamos pulsando OK.




Fuentes de información:
www.eclipse.org
http://www.ubuntu-guia.com/2012/04/instalar-oracle-java-7-en-ubuntu-1204.html
http://pydev.org/manual_101_install.html

miércoles, agosto 28, 2013

Desplegando aplicaciones django en Ubuntu 12.04 con un servidor web Apache y el módulo mod_wsgi

Empezaremos por la instalación del software necesario, posiblemente alguno ya se encuentre instalado en nuestro equipo:


sudo apt-get install python
sudo apt-get install python-mysqldb 
sudo apt-get install apache2 libapache2-mod-wsgi
sudo apt-get install mysql-server  
sudo easy_install -U distribute
sudo pip install django 

Verificamos la correcta instalación de django, para ello vemos la versión instalada (actualmente la 1.5.2):
 
django-admin --version


Crear la base de datos y el usuario de mysql que utiliza nuestro proyecto. Una vez conectados a mysql como administrador (root) indicaremos las siguientes ordenes:

mysql>CREATE DATABASE mi_base_de_datos;
mysql>CREATE USER 'mi_usuario'@'localhost' IDENTIFIED BY 'mi_clave';
mysql>GRANT ALL PRIVILEGES ON mi_base_de_datos.* TO 'mi_usuario'@'localhost';
mysql>FLUSH PRIVILEGES;

Copiamos o creamos el proyecto Django, en el caso que sea un proyecto nuevo:

$django-admin startproject mi_proyecto
$cd mi_proyecto
$python manage.py startapp mi_aplicacion

Editamos el fichero de configuración del proyecto (mi_proyecto/settings.py) para adaptar los valores al nuevo equipo, quedaría así:


DEBUG = False
TEMPLATE_DEBUG = DEBUG

ADMINS = (
    # ('Your Name', 'your_email@example.com'),
)

MANAGERS = ADMINS

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': 'mi_base_de_datos',                      # Or path to database file if using sqlite3.
        'USER': 'mi_usuario',                      # Not used with sqlite3.
        'PASSWORD': 'mi_clave',                  # Not used with sqlite3.
        'HOST': '',                      # Set to empty string for localhost. Not used with sqlite3.
        'PORT': '',                      # Set to empty string for default. Not used with sqlite3.
    }
}

ALLOWED_HOSTS = ['midominio.es']

TIME_ZONE = 'Europe/Madrid'

LANGUAGE_CODE = 'es-es'

SITE_ID = 1

USE_I18N = True

USE_L10N = True

SE_TZ = True

MEDIA_ROOT = ''

MEDIA_URL = ''

STATIC_ROOT = ''

STATIC_URL = '/static/' 
 
ADMIN_MEDIA_PREFIX ='/static/admin/'
 
STATICFILES_DIRS = (
)

STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
#    'django.contrib.staticfiles.finders.DefaultStorageFinder',
)

TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.Loader',
    'django.template.loaders.app_directories.Loader',
#     'django.template.loaders.eggs.Loader',
)

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    # Uncomment the next line for simple clickjacking protection:
)

ROOT_URLCONF = 'mi_proyecto.urls'

WSGI_APPLICATION = 'mi_proyecto.wsgi.application'

TEMPLATE_DIRS = (
    '/home/usuario/mi_proyecto/mi_aplicacion/templates' 
    # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
    # Always use forward slashes, even on Windows.
    # Don't forget to use absolute paths, not relative paths.
)

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',
     'mi_aplicacion',
    # Uncomment the next line to enable admin documentation:
    # 'django.contrib.admindocs',
)
                  
LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'filters': {
        'require_debug_false': {
            '()': 'django.utils.log.RequireDebugFalse'
        }
    },
    'handlers': {
        'mail_admins': {
            'level': 'ERROR',
            'filters': ['require_debug_false'],
            'class': 'django.utils.log.AdminEmailHandler'
        }
    },
    'loggers': {
        'django.request': {
            'handlers': ['mail_admins'],
            'level': 'ERROR',
            'propagate': True,
        },
    }
}
                  
Si se trata de un proyecto nuevo, creamos las tablas de la base de datos y el usuario administrador mediante:


python manage.py syncdb

Podemos verificar el correcto funcionamiento del proyecto lanzando el servidor web de desarrollo de django. Para que funcione correctamente el servidor de desarrollo en el fichero de configuración tendremos que indicar Debug=True, en caso contrario obtendremos '500 server error':


python manage.py runserver 192.168.0.1:8001


Editamos el fichero de configuración de Apache  /etc/apache2/sites-available/default para indicar dentro del <VirtualHost *:80> la configuración del módulo mod_wsgi.

El fichero quedaría así:

<VirtualHost *:80>
        ServerAdmin webmaster@localhost

        WSGIDaemonProcess miproyecto python-path=/home/usuario/mi_proyecto/
        WSGIProcessGroup miproyecto
        WSGIScriptAlias / /home/usuario/mi_proyecto/mi_proyecto/wsgi.py
 
        Alias /static/admin/ /usr/local/lib/python2.7/dist-packages/django/contrib/admin/static/admin/
               
        <Directory /usr/local/lib/python2.7/dist-packages/django/contrib/admin/static/admin>
            Order allow,deny
            Allow from all
        </Directory>
 
        <Directory /home/usuario/mi_proyecto/mi_proyecto>
        <Files wsgi.py>
        Order deny,allow
        Allow from all
        </Files>
        </Directory> 
 
        ErrorLog ${APACHE_LOG_DIR}/error.log
        LogLevel warn
        CustomLog ${APACHE_LOG_DIR}/access.log combined
 
</VirtualHost> 
 
Reiniciamos el servidor apache y ya estaría listo:

 sudo service apache2 restart