Underc0de - Hacking y seguridad informática

Programación Scripting => Python => Mensaje iniciado por: facufangio en Septiembre 28, 2014, 08:33:21 pm

Título: Django 1.7 con MySQL en Ubuntu
Publicado por: facufangio en Septiembre 28, 2014, 08:33:21 pm
(http://pulloquinga.com/wp-content/uploads/2014/03/django-mysql.png)

Conectar Django 1.7 con MySQL


En esta oportunidad les traigo como conectar Django y MySQL en Ubuntu.


Lo primero que debemos realizar es instalar MySQL en nuestra PC. para ello usaremos el siguiente código.

Código: Bash
  1. sudo apt-get install mysql-server


(https://lh3.googleusercontent.com/-Py8XMVhGMis/VDcMDgUpv6I/AAAAAAAAAMc/XVdPOGFeLns/w491-h72-no/1.png)


Una vez instalado, deberemos crear una base de datos para que Django cree las tablas necesarias.
Ingresamos a la base de datos.

Código: Bash
  1. mysql -u root -p

(https://lh3.googleusercontent.com/-2U0PgsAGbCc/VDcMGfGb_-I/AAAAAAAAAKM/c30gSyiRhjQ/w351-h58-no/2.png)


-u = USUARIO DE LA BASE DE DATOS
-p = PASSWORD DE LA BASE


Creamos la base de datos llamada "ejemplo"

Código: Bash
  1. create database ejemplo;

(https://lh4.googleusercontent.com/-eMYeb5puh1o/VDcMJuaU9wI/AAAAAAAAALM/dD8A-DU1D_0/w402-h94-no/3.png)

comprobamos que halla sido creada correctamente.

Código: Bash
  1. show dabatases;

(https://lh4.googleusercontent.com/-_tZqkcJVHa0/VDcMKREMV8I/AAAAAAAAAMI/ETur6p4EVy4/w219-h268-no/4.png)


Una vez ya creada la tabla salimos e instalamos el siguiente paquete y librería de Python.

Paquete de Python

Código: Bash
  1. sudo apt-get install python-dev

(https://lh6.googleusercontent.com/-2Xeti9meLuU/VDcMKgjoG5I/AAAAAAAAALc/2orjOg2cruw/w463-h46-no/5.png)

Librería de Python

Código: Bash
  1. sudo apt-get install libmysqlclient-dev

(https://lh3.googleusercontent.com/-Sn7mhlB0UDE/VDcMKuhHWQI/AAAAAAAAALs/CSc8tbQc5z8/w482-h43-no/6.png)


Ahora vamos a hacer es instalar PIP, éste, nos sirve para instalar paquetes en Python.

Para instalar PIP en Ubuntu haremos.

Código: Bash
  1. sudo apt-get install python-setuptools python-dev build-essential

(https://lh6.googleusercontent.com/-VKNOMbP5v1Q/VDcMLdfEh-I/AAAAAAAAALw/qWycE0zFPY8/w700-h45-no/7.png)

Código: Bash
  1. sudo easy_install pip

(https://lh3.googleusercontent.com/-yiGcwhp06QA/VDcMLfjemcI/AAAAAAAAAL0/YYX89jCCDB4/w353-h40-no/8.png)


Una vez que tenemos instalado PIP en Ubuntu, vemos cómo instalar virtualenv de la siguiente manera

Código: Bash
  1. sudo pip install --upgrade virtualenv

(https://lh4.googleusercontent.com/-jRsWUuA3Zy8/VDcML4j9-QI/AAAAAAAAAME/jjgySMCCScc/w471-h38-no/9.png)

Con esto ya tenemos instalado PIP y virtualenv.



El uso de virtualenv es relativamente sencillo. Si deseamos crear un nuevo entorno virtual, lo haremos así

Código: Bash
  1. virtualenv mi_entorno

(https://lh5.googleusercontent.com/-SJdN5gVWM2I/VDcMDwhpVrI/AAAAAAAAAMc/k7Wjq06fhGI/w349-h44-no/10.png)


Y “entraremos” a ese entorno virtual así.

Código: Bash
  1. source mi_entorno/bin/activate

(https://lh4.googleusercontent.com/-cZQxGekLtek/VDcMDmQgGpI/AAAAAAAAAJE/GBvFZ0f0Pe8/w432-h51-no/11.png)

*Para salir del entorno usaremos:

Código: Bash
  1. deactivate

Una vez adentro del entorno veremos como cambia nuestra linea de código colocando el nombre del entorno entre paréntesis.

(https://lh4.googleusercontent.com/-K0m_caSAkAU/VDcMERzCuMI/AAAAAAAAAMc/KElnQh0op0k/w270-h36-no/12.png)

Comprobaremos si Django se encuentra instalado en nuestro entorno virtual. Para comprobar utilizaremos el siguiente código.

Código: Bash
  1. pip freeze

si no se encuentra instalado nos mostrara algo asi

(https://lh6.googleusercontent.com/-NPoH9_zi4LM/VDcMEtQ6AtI/AAAAAAAAAJc/hAbi3_gJ28I/w376-h115-no/14.png)

para instalarlo usaremos el siguiente comando, lo cual nos dará la ultima versión disponible

Código: Bash
  1. pip install django

(https://lh6.googleusercontent.com/-dj8KZil8sY8/VDcMEoB0urI/AAAAAAAAAMc/_12g2-8hswQ/w573-h116-no/13.png)

y veremos como ya se nos instala satisfactoriamente.


A continuación instalaremos el conector entre Python y MySQL para que se conecte con nuestra base de datos.

Código: Bash
  1. pip install mysql-python

(https://lh3.googleusercontent.com/-LrF3pxNW3XU/VDcMFOlLleI/AAAAAAAAAKc/7-BdOaQ1x4c/w460-h38-no/15.png)

Crearemos ahora nuestro primer proyecto ejemplo para ver si funciona correctamente la conección con la base de datos.

Código: Bash
  1. django-admin.py startproject ejemplo

(https://lh6.googleusercontent.com/-cry7NRcdvLE/VDcMFYtRf7I/AAAAAAAAAKQ/tQmo4eiUC2I/w573-h46-no/16.png)

Ingresamos dentro de la carpeta proyecto en este caso llamada "ejemplo" y veremos 1 archivo (manage.py) y una subcarpeta (ejemplo)

(https://lh3.googleusercontent.com/-8alRvbqBxdA/VDcMFpS5MpI/AAAAAAAAAJs/-V8LM1_R5bY/w352-h32-no/17.png)

(https://lh6.googleusercontent.com/-5mo4GeYbMWE/VDcMFiUDU3I/AAAAAAAAAKA/RkfoHm20Qpk/w365-h66-no/18.png)

Ingresamos en la subcarpeta

(https://lh5.googleusercontent.com/-SMKkx7ihf04/VDcMF1e_jQI/AAAAAAAAAJw/FxxW5bpoBP4/w412-h32-no/19.png)

Divisamos el archivo settings.py que sera editado con los datos para establecer la conexión.

(https://lh3.googleusercontent.com/-Rutz7rh0xp0/VDcMGjaGzSI/AAAAAAAAAMU/qIJ8iAcpxb4/w412-h61-no/20.png)

Código: Bash
  1. nano settings.py

(https://lh5.googleusercontent.com/-hKJ4ZKg82JE/VDcMGuQVs-I/AAAAAAAAAKI/22zhWQLtNDQ/w531-h44-no/21.png)

Teniendo que quedar como la siguiente imagen

(https://lh5.googleusercontent.com/-2DbzU82c7oo/VDcMHG_g3bI/AAAAAAAAAKU/GfDjL60jlVA/w549-h246-no/22.png)

Donde:

ENGINE  : Es el motor de DB que usaremos en este caso MySQL ya que por defecto es SQLite.

NAME    : Nombre de la DB

USER    : Usuario de la DB

PASSWORD: Contraseña del usuario que creo durante la instalación de MySQL

HOST   : Servidor local, queda vació utilizando el por defecto.

PORT    : Puerto que también quedará vació ya que utilizamos el que viene por defecto

Guardamos y Cerramos


Nos regresamos a la carpeta principal del proyecto como lo vemos en la imagen.

(https://lh5.googleusercontent.com/-sV8RmwdrYSA/VDcMH-0iZII/AAAAAAAAAKk/hR1r7hyTw6A/w524-h75-no/23.png)

para poder sincronizar Django con la base creada debemos ejecutar el siguiente código utilizando el archivo manage.py

Código: Bash
  1. python manage.py syncdb

(https://lh5.googleusercontent.com/-4awB7OOUaT8/VDcMIF11wLI/AAAAAAAAAMQ/YyQ1pjcJMUI/w667-h297-no/24.png)


Nos pedirá si deseamos crear un super-usuario y le ponemos que si, le damos un nombre yo en este caso use "root" y de contraseña "1234".

Una vez sicronizada nuestro proyecto con la base de datos, lo único que nos queda es ejecutar el servidor para poder visualizar si funciona correctamente.

Código: Bash
  1. python manage.py runserver

(https://lh3.googleusercontent.com/-6JFscFzf6r8/VDcMIMnIZ0I/AAAAAAAAAKw/UAKHsngNNR4/w548-h38-no/25.png)

En la siguiente imagen veremos que nos otorga la ip y puerto del servidor local "http://127.0.0.1:8000/"

(https://lh3.googleusercontent.com/-rK2s4DnU17g/VDcMIlC42yI/AAAAAAAAAK4/hqqXFQODhlo/w549-h154-no/26.png)

Colocamos la dirección en nuestro navegador y nos mostrara lo siguiente

(https://lh3.googleusercontent.com/-eG8fJWQ-k-c/VDcMJEw4JDI/AAAAAAAAAMM/MgzGz7XcXY0/w863-h243-no/27.png)

si deseamos probar la base de datos colocamos lo siguiente en nuestra url

(https://lh6.googleusercontent.com/-f2-Sz0RUjNA/VDcMJVjb6_I/AAAAAAAAAMA/Svk4I2BVIHs/w218-h46-no/28.png)


y nos pedira nuestro usuario y contraseña que fueren creados durante la sincronización de DB

(https://lh6.googleusercontent.com/-rv4Qz8DWXms/VDcMJhb5Z5I/AAAAAAAAALQ/NoatH8Uzo5Q/w308-h227-no/29.png)
 
 por ultimo veremos que podemos hacer una ABM cargando grupos o usuarios.
 
(https://lh5.googleusercontent.com/-nG8YieNWS-I/VDcMKCyCfVI/AAAAAAAAALg/t3q0UFo9YFc/w734-h136-no/30.png)




Espero que les sirva y gracias!


< SE SIEMPRE EL MEJOR, PERO NO TE LO CREAS >
Título: Re:Django 1.7 con MySQL en Ubuntu
Publicado por: ANTRAX en Septiembre 28, 2014, 08:44:28 pm
Está excelente facufangio!!!!
Muchisimas gracias por el aporte!!!

Saludos!
ANTRAX
Título: Re:Django 1.7 con MySQL en Ubuntu
Publicado por: Gabriela en Septiembre 28, 2014, 09:10:09 pm
Sin probar, respondo (no estoy en pc de Ubuntu)
 Se ve muy buen aporte.

Gracias por compartir y multiplicar los conocimientos.
 :-*

G.
Título: Re:Django 1.7 con MySQL en Ubuntu
Publicado por: Snifer en Septiembre 29, 2014, 11:52:34 am
Cabe resaltar que dicha cofiguración llega a funcionar en cualquier SO Linux y no solo en Ubuntu.

Buena entrada graicas por compartir.

Regards,
Snifer
Título: Re:Django 1.7 con MySQL en Ubuntu
Publicado por: facufangio en Septiembre 29, 2014, 12:31:54 pm
Muy cierto Snifer.

Gracias por la corrección
Título: Re:Django 1.7 con MySQL en Ubuntu
Publicado por: Y3K en Noviembre 04, 2014, 02:59:54 am
Sólo como pequeñisimo consejo... Django se lleva mucho mejor con PostgreSQL que con MySQL / MariaDB
Título: Re:Django 1.7 con MySQL en Ubuntu
Publicado por: facufangio en Noviembre 06, 2014, 03:57:14 pm
Lo se, pero hay gente que no usa PostgreSQL y usa MySQL, por eso el tuto!

Pero gracias por el dato informativo !!


Saludos
Título: Re:Django 1.7 con MySQL en Ubuntu
Publicado por: Y3K en Noviembre 10, 2014, 01:38:23 am
Lo se, pero hay gente que no usa PostgreSQL y usa MySQL, por eso el tuto!

Pero gracias por el dato informativo !!


Saludos

Quizá por que la mayoría de los tutoriales son para MySQL ;)

Igual, cuando no hay nada más por usar tampoco viene taaan mal.