Django y Mysql

Siguiendo con el aprendizaje de Django en esta oportunidad toca ver como usamos mysql, para esto se necesita instalar la libreria MySQLdb, primero vamos a instalar el paquete Python-dev y el paquete libmysqlclientdev:

sudo apt-get install python-dev
sudo apt-get install libmysqlclient-dev

Finalmente ya podemos instalar MySQLdb usando pip:

sudo pip install mysql-python

En la carpeta misitio ubicamos el archivo settings.py y lo modificamos en la parte que dice DATABASES:

DATABASES = {
		'default': {
		'ENGINE': 'django.db.backends.mysql',
		'NAME': 'prueba',
		'USER': 'usuario',
		'PASSWORD': 'contraseña',
		'HOST': '127.0.0.1',
	}
}

No olvidar que debemos tener creada la base de datos prueba en mysql, esto lo podemos hacer como querramos yo he usado Mysql Workbench.

Ahora ejecutamos lo siguiente en la terminal, siempre dentro de la carpeta de nuestro proyecto:

python manage.py syncdb

Si se ha instalado correctamente la libreria de mysql para python y se han configurado correctamente los parametros entonces nos saldrá lo siguiente:

Creating tables ...
Creating table djangoadminlog
Creating table authpermission
Creating table authgrouppermissions
Creating table authgroup
Creating table authusergroups
Creating table authuseruserpermissions
Creating table authuser
Creating table djangocontenttype
Creating table django_session
You just installed Django's auth system, which means you don't have any superusers defined.
Would you like to create one now? (yes/no):
Please enter either "yes" or "no": yes
Username (leave blank to use 'inkarri'):
Email address: miguel.amaya99@gmail.com
Password:
Password (again):
Superuser created successfully.
Installing custom SQL ...
Installing indexes ...
Installed 0 object(s) from 0 fixture(s)

Esto nos ha creado las tablas correspondientes en la base de datos prueba, si no me creen vayan a revisar y comprueban por uds mismos 🙂
Eso es todo por ahora.

Saludos combativos.

Sisrest

Buenas noches mis estimados, nuevamente les voy a dejar un programita que hice para practicar con las conexiones a bases de datos, en este caso MYSQL, espero que sea de utilidad, lo pueden descargar desde aquí.

Tiene un fichero que dice instrucciones, espero poder hacer un manual y detallar las funcionalidades del programa pero será para mas adelante.

Saludos combativos.

Problemas con UTF8

Esta vez me ocurrió un problema con una página web que tengo que administrar, resulta que al mostrarse en el navegador me estaba reemplazando las tildes y las “ñ” con caracteres raros, después de una larga investigación y tras probar infinidad de métodos lo único que me funcionó fue lo siguiente:

Primero cambiar el set de caracteres de mi base de datos(MYSQL) a utf8_unicode_ci, tambien se puede utilizar utf8_general_ci, luego de eso tengo que cambiar el encabezado de mis archivos de la página web para que trabajen con utf8:

<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />

Al principio pensaba que con eso era suficiente pero seguía con el mismo error, ¿Qué cosa me faltaba?, navegando en la red encontré que después de hacer la conexión tenia que decirle a mis consultas que usen utf8, para eso tengo que añadir lo siguiente:

mysql_query (“SET NAMES ‘utf8′”);

Debo recordar que esto se hace después de establecer la conexión y antes de realizar cualquier consulta.

Ya con esto tengo el problema solucionado y puedo visualizar mi web sin ningún problema. Pero si tambien deseamos cambiar la codificacion de nuestros ficheros fuente de ISO 8859-1 a UTF-8 podemos hacer un script como este para linux:

#!/bin/bash
for i in `find -name ‘*.php’`
do
iconv -f ISO_8859-1 -t UTF-8 $i > tmpfile
mv -f tmpfile $i
done

Lo corremos y comprobamos que el cambio ha sido realizado con el siguiente comando:

 file -i nombre_archivo

El cual nos muestra las características detalladas del archivo.

Saludos y hasta la victoria siempre.

Haciendo y Restaurando Backups de Mysql con Gambas

Bueno despues de muchas lunas vuelvo a escribir sobre Gambas lamento haber tenido abandonado el tema durante mucho tiempo y dedicarme a postear otras cosas pero espero retomar con fuerza y ayudar a quienes tengan alguna duda con este lenguaje de paso que tambien aprendemos juntos listo entonces hecha la aclaracion manos a la obra.
El asunto es bastante sencillo resulta que necesitamos hacer backups de nuestra base de datos y poder restaurarlos posteriormente en caso de que suceda algun problema asi que creamos una interfaz grafica como esta.

Bueno la interfaz es bastante intuitiva(eso espero XD) asi que vamos a ver una porcion de codigo, cuando le damos click al boton respaldar.

Dialog.Title = "Guardar archivo"
Dialog.Path = "."
'Filtro para tomar solamente extensiones sql
Dialog.Filter = ["*.sql", "Ficheros sql"]
'Variables.CFG_BD_PASS es una variable donde almaceno el password de la base de datos, desde un modulo Variables
pass = " --password=" & Variables.CFG_BD_PASS & " "
IF NOT Dialog.SaveFile() THEN
	ruta = Dialog.Path
ENDIF
	'redireccion es la ruta donde se va a guardar el backup le agregamos el simbolo > como operador de redireccionamiento redireccion = " > " & ruta
	'Usamos SHELL para correr el proceso en este caso mysqldump que es el que realmente hace todo el trabajo para mayor informacion sobre este comando remitirse  a la documentacion de Mysql
	proceso = SHELL "mysqldump -u " & Variables.CFG_BD_USUARIO & pass & Variables.CFG_BD_NAME & redireccion FOR READ

Con lo que obtendriamos la siguiente ventana.


Con lo que inmediatamente guardamos nuestro backup con el nombre que le querramos asignar.
Si queremos restaurarlo el procedimiento es analogo salvo el comando de mysql que es el que se usa para restaurar

Dialog.Title = "Elija una ubicacion"
Dialog.Path = "."
Dialog.Filter = ["*.sql", "Ficheros sql"]
pass = " --password=" & Variables.CFG_BD_PASS & " "
IF NOT Dialog.OpenFile() THEN
	ruta = Dialog.Path
ENDIF
	redireccion = " < " & ruta
	proceso = SHELL "mysql -u " & Variables.CFG_BD_USUARIO & pass & Variables.CFG_BD_NAME & redireccion FOR READ


Y listo eso es todo asi de simple como se habran dado cuenta quien realmente hace el trabajo es mysql lo unico que he hecho con gambas es la interfaz grafica, haciendo uso de la orden SHELL para ejecutar los comandos.
Saludos y hasta la proxima.