Instalación de Django
Asi me fue instalando Django junto a postgresql como base de datos.
Hola amigos les entrego un post de mi experiencia instalando Django recogido de seguir un curso que estoy realizando y de leer tutoriales, blogs, y la documentación oficial de Django que no nos debe faltar y con la cual pude resolver la conexión con postgresql como base de datos, ya que Django viene configurado para trabajar con sqlite3 por defecto, y mi idea era configurarlo con este gestor de base de datos, realmente me di cuenta que hay poca documentación al respecto, por lo que espero este post contribuya para aportar a quienes quieran aprender sobre Django.
Esto lo realice en una maquina que tiene instalado ElementaryOS Friya como sistema operativo que para quienes no lo saben es una distro derivada de Ubuntu por lo que a cualquier de distro derivada de Ubuntu me imagino debería funcionar.
~$ uname -a
Linux linuxelementaaryserver 3.16.0-55-generic #74~14.04.1-Ubuntu SMP Tue Nov 17 10:15:59 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
Como saben estoy siguiendo el libro La guía definitiva de Django: Desarrolla aplicaciones web de forma rápida y sencilla.
Tratare de explicar la instalación de todo basado en mi experiencia personal donde varias cosas al principio no daban pero al final como siempre esta la recompensa del deber cumplido.
Bueno sin más preámbulo empezamos
Primero instalemos Postgresql en nuestro sistema. Buscando posts y tutoriales por internet, la forma mas fácil de instalarlo es con el siguiente instrucción.
En nuestra consola escribimos lo siguiente
sudo apt-get install postgresql postgresql-client postgresql-contrib libpq-dev pgadmin3
con esto nos queda instalado Postgresql, en mi caso me instalo la versión 9.3
Para Ubuntu y derivados, no configura el password para el usuario postgres que es el administrador por defecto de Postgres, para ello en nuestra consola escribimos;
sudo -i -u postgres
nos pedirá el password del admin de linux
luego escribimos
psql
con estos estamos en la consola de administración de postgresql
y asignamos el password al usuario postgres que es un usuario que crea cuando instalamos Postgres, lo hacemos con el siguiente comando
alter user postgres with password 'passwd'
en passwd colocamos nuestra contraseña,
Esto lo hacemos por que para conectar a django necesitamos que se conecte al servidor con el usuario postgres.
Después volveremos para crear una base de datos que también es necesario.
ahora empezaremos a instalar Django
Primero debemos instalar el administrador e instalador de paquetes de Python para ello en la consola ponemos:
python get-pip.py
osudo apt-get install pip
luego instalamos virtualenv que es quien manejaremos el ambiente virtualpip install virtualenv
luego donde te parezca creamos una carpeta para crear un ambiente virtual, para instalar Django, esto es recomendable para no interfiera con otras instalaciones y dependencias.
mkdir [nombre de la carpeta]
cd [nombre de la carpeta]
entramos a la carpeta
ahora creamos el entorno virtual
virtualenv [nombre_del_entorno]
luego debemos activar el entorno virtual
source [nombre_del_entorno]/bin/activate
el promt de nuestra consola cambiara
[nombre_del_entorno]/[nombre de la carpeta]~$
con el siguiente comando veremos lo que esta instalado en nuestro entorno
pip freeze
instalamos Django en mi caso instale la 1.8
pip install django==1.8
pero para instalar la ultima versión para el momento que se escribió este post va en la 1.9
para ello escriben lo mismo si el ==1.8 y por defecto instalara la ultima versión.
Luegos instalamos psycopg2
pip install psycopg2
si hacemos pip freeze veremos los paquetes instalados en nuestro entorno virtual.
Después de instalado Django creamos un proyecto con
django-admin.py startproject [nombre proyecto]
con esto Django nos crea una carpeta con unos archivos dentro, con el comando ls listara dos carpetas una de ellas tiene el nombre que le diste al proyecto en la instrucción anterior. Entramos a esta carpeta
cd [nombre proyecto]
Con la siguiente instrucción de la consola abro el proyecto en sublimetext
subl .
vemos que en la carpeta que quedamos en la consola dentro de ella esta los siguientes archivos.
__init__
settings.py
urls.py
wsgi.py
volvemos al promt de postgres y creamos una base de datos
con
CREATE DATABSE [nombre base datos]
volvemos a sublimetext
En settings.py buscamos DATABASES y cambiamos a lo siguiente ya que lo que esta es para trabajar por defecto con sqlite3
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': ' [nombre base datos] ',
'USER': 'postgres',
'PASSWORD': '[contraseña que cambiamos]',
'HOST': '127.0.0.1',
'PORT': '5432',
}
}
y donde dice LANGUAGE_CODE = 'en-us'
cambia por 'es-co'
guardamos el archivo con ctrl + s
una vez hecho esto
realizamos la migración para que django cree las tablas que necesita por defecto con postgresql. En otro post aclararemos mas estos conceptos.
nos debe salir lo siguiente como respuesta
(nombre entorno) usuario@linuxelementaary:~/[nombre_del_entorno]/[nombre de la carpeta]~$ python manage.py migrate
Operations to perform:
Synchronize unmigrated apps: staticfiles, messages
Apply all migrations: admin, contenttypes, auth, sessions
Synchronizing apps without migrations:
Creating tables...
Running deferred SQL...
Installing custom SQL...
Running migrations:
Rendering model states... DONE
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying sessions.0001_initial... OK
si viste esto ya esta configurado Django para trabajar con Postgresql
luego corremos el servidor de Django
con
python manage.py runserver
Veras una salida como la siguiente en tu terminal:
Performing system checks...
0 errors found
January 06, 2014 15:50:53
Django version 1.8, using settings 'misitio.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROLC.
Acabas de iniciar el servidor de desarrollo de Django, un servidor web liviano escrito completamente en Python, que vine incluido en Django para poder desarrollar de manera rápida tus proyectos, sin tener que perder el tiempo con la configuración de un servidor de producción -- - como Apache hasta que el proyecto esté listo para producción.
En el navegador colocamos en la barra de direcciones http://127.0.0.1:8000/, podemos ver una pagina de Bienvenida de Django
Una
vez instalado Django aunque en el post anterior verificamos su
instalación desde el navegador web cuando corrimos el servidor que
nos proporciona Django, lo podemos hacer también desde la consola de
nuestro sistema (recuerden la consola o la terminal es nuestra mejor
amiga).
Lo podemos hacer de
la siguiente 2 maneras:
- Recordemos que debemos estar dentro del entorno virtual creado. Y entramos al shell de python. Una vez dentro escribimos lo siguiente:
>>>
import django
>>>
django.VERSION
1.8
>>>
-
O puedes usar directamente el siguiente comando en una terminal:
$
python -c "import django; print(django.get_version())"
Como recordaras ya
hemos creado un proyecto con
$
django-admin.py startproject misitio
Donde
misitio es el nombre de tu proyecto. Esto creará un directorio
misitio en el directorio actual, que contiene la estructura de
directorios y archivos que conforman tu proyecto Django.
Veamos
lo que el comando startproject creo:
misitio/
manage.py
misitio/
__init__.py
settings.py
urls.py
wsgi.py
Donde
ubicaremos nuestro codigo?, pues si tienes experiencia en lenguajes
PHP sabrás que el código lo colocamos en el directorio raíz del
servidor /var/www. En Django no es así por razones de seguridad se
recomienda colocar el código fuera, puede ser en /home/proyecto.
Si
leíste y espero que hayas revisado el post anterior sabrás que el
objetivo era salir un poco de los parámetros del libro que estamos
siguiendo y el cual era configurar django con Postgres.
Bueno
si queremos ver las tablas que internamente Django creo, cuando
ejecutamos la orden
$
python manage.py migrate
hacemos
lo siguiente:
$
python manage.py dbshell
con
esto entramos a la consola de administración de Postgres
y
escribimos para Postgres la siguiente orden:
\dt
con
esto lista las tablas en la base de datos configurada con Django.
Deberían
ver algo como esto.
Espero les haya sido de ayuda
No hay comentarios.:
Publicar un comentario