Académique Documents
Professionnel Documents
Culture Documents
ndice de contenido
1.Objetivo.............................................................................................................................................1 2.MySQL..............................................................................................................................................2 2.1.Instalacin Windows..................................................................................................................2 2.2.Instalacin Linux.......................................................................................................................2 2.3.Acceso al MySQL......................................................................................................................2 2.4. Copias de seguridad de MySQL...............................................................................................3 2.5.Conectar OpenOffice al MySQL...............................................................................................3 2.5.1. Usando el Connector/J .....................................................................................................4 2.5.2. Usando el Connector/ODBC en Windows .......................................................................4 2.5.3. Usando Connector/ODBC en Ubuntu ..............................................................................5 2.6. Volcado de Access a MySQL...................................................................................................6 3. Apache..............................................................................................................................................6 3.1.Windows....................................................................................................................................6 3.2.Linux..........................................................................................................................................6 3.3.Ubuntu.......................................................................................................................................7 4. Python...............................................................................................................................................7 4.1.Conversin formato fecha..........................................................................................................7 4.2.Conversin formato valor numrico..........................................................................................7 5. Interaccin Python y MySQL...........................................................................................................8 6. CGIs..................................................................................................................................................9 6.1.Windows....................................................................................................................................9 6.2.Linux........................................................................................................................................10 6.3. Funcin verificacin fecha......................................................................................................10 7.Aplicacin BIBLIOTECA...............................................................................................................10
1. Objetivo
El objetivo de este documento es explicar como desarrollar una aplicacin de base de datos SIN Microsoft Access y con programas de programacin libre. En el caso que voy a desarrollar se han empleado los siguientes productos: MySQL como base de datos relacional. Es una base de datos relacional de programacin libre y su informacin se puede encontrar en www.mysql.com Apache como servidor web. Python como lenguaje de programacin para acceder a los datos almacenados en MySQL y para la realizacin de los distintos mdulos CGI
-1-
2. MySQL
Para saber su historia y dems informacin general se puede consultar http://es.wikipedia.org/wiki/ MySQL en Internet. Tambin dispone de un manual en catellano muy completo.
Esta configuracin permite establecer la contrasea para el ususario root, que es el usuario principal de MySQL. En caso de errores, desinstalar el MySQL, borrando a continuacin: el directorio donde se instale el programa y el directorio donde se guarden los datos, ya que este en una desinstalacin es fcil que pierda la integridad de algn fichero.
recomienda ejecutar el comando show databases; que nos visualiza todas las bases de datos instaladas. Por defecto existen las bases de datos mysql, test y information_schema
sobre todo si va a desplegar el conductor en mltiples mquinas. Como regla general, intentar primero el Connector / J primero si se est usando Linux o Mac OS X y se est cmodo utilizando SQL o puede editar la base de datos utilizando una herramienta de terceros. Si se est utilizando Windows o una mquina Linux con MySQL instalada en l, entonces se puede optar por el Connector / ODBC.
A continuacin reiniciar el OpenOffice Ahora ya est listo para conectar el OpenOffice a la base de datos MySQL. En OpenOffice, seguir los pasos siguientes: Seleccionar Nuevo -> Base de datos. En el Asistente para la base de datos, seleccione Conectar a una existente opcin de base de datos. En esta caso seleccionar MySQL desde la lista desplegable, y haga clic en Siguiente. Seleccionar Conectar usando la opcin JDBC (Java Database Connectivity) y haga clic en Siguiente. Especificar el nombre de la base de datos (comptes o mysql) y la direccin del servidor (localhost) utilizando los campos correspondientes. Para asegurarse de que el driver MySQL JDBC funciona correctamente, haga clic en el botn Probar conexin. Una vez que el driver se ha cargado con xito, haga clic en Siguiente. Introduzca el nombre de usuario (root) de base de datos en el campo de nombre de usuario. Si el nombre de usuario tiene una contrasea, marcar la casilla de verificacin de contrasea (la de siempre). Para ver si todo funciona como se supone que, haga clic en el botn Probar conexin. Hacer clic en el botn Siguiente, seleccione el S, registrar la base de datos y haga clic en Finalizar. Dar a la base de datos un nombre y guardarlo.
De la lista de controladores disponibles, seleccione el controlador ODBC de MySQL, y haga clic en Aceptar. Esto abre el Connector / ODBC ventana de configuracin. En la seccin de inicio de sesin, escriba la informacin requerida en los campos correspondientes. Haga clic en Probar para ver si la conexin creada funciona correctamente. A continuacin, haga clic en Aceptar para guardar los parmetros y cerrar la ventana. En OpenOffice, crear una nueva base de datos tal y como se describe anteriormente.
Probar conexin. Haga clic en el botn Siguiente, selecciona S, registro de la opcin de la base de datos para m, y haga clic en Finalizar. Dar a la base de datos con un nombre y guardarlo.
3. Apache
Esta aplicacin consiste en la creacin de un servidor web. Su manual contiene informacin exhaustiva de esta aplicacin.
3.1. Windows
El Apache genera los directorios siguientes: 1) El directorio htdocs donde se almacenan los archivos con extensin htm 2) El directorio cgi-bin donde se almacenan los scripts CGI 3) El directorio logs donde el archivo error.log contiene los mensajes de error generados por el Apache. En Windows, por defecto estos directorios estn bajo el directorio C:\Archivos de programa\Apache Software Foundation\Apache2.2
3.2. Linux
La instalacin se basa en lo explicado en el libro La Biblia Servidor Apache 2 de Mohammed J.Kebir. Una vez descargado la correspondiente versin en formato http...tar.gz en el directorio /usr, se ejecuta el comando tar xvzf http...tar.gz Esto conlleva la creacin del directorio http... y su contenido sirve para la instalacin del servidor Apache. A continuacin ejecutaremos el comando sudo ./configure - -prefix=/usr/local/apache dado que tenemos que ejecutarlo como administrador y se desea instalar el Apache en el directorio / usr/local/apache Ahora debemos ejecutar los comandos siguientes sudo make sudo make install Dentro del directorio /usr/local/apache se encontar 1) El directorio htdocs donde se almacenan los archivos con extensin htm 2) El directorio cgi-bin donde se almacenan los scripts CGI
-6-
3.3. Ubuntu
La instalacin del mdulo python-mysqldb se hace usando synaptic Para ver los subdirectorios por defecto, visualizar el fichero /etc/apache2/sites-available/default Verificar que tiene la lnea AddHandler cgi-script .cgi .py .pl Por defecto los archivos htm se deben almacenar en /var/www Los archivos cgi se deben almacenar en /usr/lib/cgi-bin/ Los atributos de cada cgi deben ser 0755 y la primera lnea del cgi debe ser #!/usr/bin/python El log de errores se encuentra en /var/log/apache2/error.log y verificar que existe un fichero suexec.log
4. Python
Se trata de modificar el contenido del MySQL y visualizarlo de forma e inters de los usuarios. Para ello, es necesario un lenguaje que haga de intermediario entre el Apache y el MySQL. En nuestro caso se usa Python. En este caso se ha instalado en el directorio c:/Python25 y contiene los mdulos necesarios para los scripts que se han realizado. En concreto se trata de: 1) el mdulo MySQLdb 2) el mdulo cgi 3) el mdulo cgitb; cgitb.enable() A continuacin se relacionan algunos cdigos que se han hecho a medida para las aplicaciones desarrolladas.
punt=svform1.find('.'); deci=svform1[punt+1:punt+3] if len(deci) == 1: deci=deci+'0' partent=svform1[0:punt] partdec = '0' if len(partent) > 3: partdec=partent[len(partent)-3:len(partent)] else: partdec=partent partmil='' if len(partent) > 3: partmil=partent[0:len(partent)-3] if len(partent) > 3: resultf=partmil+'.'+partdec+','+deci else: resultf=partdec+','+deci return resultf Conversin de un valor sin decimales, como las pesetas, a formato moneda def monant(vform2): vform2=round(vform2,0); svform2=str(vform2) punt=svform2.find('.'); deci=svform2[punt+1:punt+3] partent=svform2[0:punt] partdec='' partmil='' partcmil='' if len(partent) > 6 : partcmil = partent[0:len(partent)-6] partmil = partent[len(partent)-6:len(partent)-3] partdec = partent[len(partent) - 3:len(partent)] resultf=partcmil+'.'+partmil+'.'+partdec if len(partent) > 3 and len(partent) < 7: partmil = partent[0:len(partent)-3] partdec = partent[len(partent)-3:len(partent)] resultf=partmil+'.'+partdec if len(partent) < 3: partdec=partent[0:len(partent)-3] resultf=partdec return resultf
El comando INSERT El comando DELETE el comando UPDATE En el caso de SELECT, las DB-API suministran un par de mtodos para extraer las filas: fetchone() y fetchall(). El mtodo. fetchone( ) devuelve la fila siguiente como una secuencia o None cuando no hay ms filas. Pero hay un error en Python que hace no recoja los campos del primer registro. Por esta razn se debe usar el otro mtodo fetchall(). El mtodo fetchall( ) devuelve el resultado completo como una secuencia de secuencias. Se puede iterar a travs de la secuencia de acceso a las filas: rows = cursor.fetchall ( ) for row in rows: print "id: %s, name: %s, cats: %s" % (row[0], row[1], row[2])
6. CGIs
6.1. Windows
Dado que el lenguaje Python se ha instalado aparte del Apache, es decir, Python no est integrado en l, hace que la primera lnea del scripts sea #!c:\Python25\python.exe La segunda lnea debe ser ## -*- coding: latin-1 -*para que el propio CGI visualice de forma correcta todos aquellos caracteres especiales en cuanto al idioma que no forma parte del idioma ingls. El script CGI recupera las variables y sus contenidos mediante el objeto diccionario cgi.FieldStorage(). Sin embargo la forma de extraer las variables y sus contenidos se hace usando el cdigo siguiente: theform = cgi.FieldStorage() data = {} for field in theform.keys(): if type(theform[field]) == type([]): if not nolist: data[field] = theform.getlist(field) else: data[field] = theform.getfirst(field) else: data[field] = theform[field].value Cabe resaltar que probablemente a errores contenidos en la librera cgi, no funciona el cdigo siguiente: datos = cgi.FieldStorage() vbcodi = datos["bcodi"].value vopcion = datos["opcion"].value -9-
6.2. Linux
En Linux, la llamada al Python se debe hacer con /usr/bin/python
7. Aplicacin BIBLIOTECA
Esta aplicacin consiste en almacenar la informacin de libros, revistas, etc. en una base de datos. En este caso concreto, lo primero que se debe hacer es disear la base de datos con los campos deseados. En nuestro caso, los campos son Nombre Ttulo Autor Materia Editorial ISBN Descripcin - 10 Descripcin Nombre completo del documento en cuestin Nombre del autor o autores
Fecha publicacin Palabras clave Topografa Para facilitar determinadas bsquedas Para determinar su ubicacin fsica
Ahora ya podemos acceder al MySQL y dar de alta esta base de datos en la misma. Para ello primero debemos generar una base de datos nueva, que le hemos llamado documentacio. Su creacin se hace usando el comando CREATE DATABASE A continuacin dentro de esta base de datos, se ha creado la nica tabla a emplear llamada biblio, y se genera mediante el comando CREATE TABLE. En este caso, se deben generar todos y cada uno de los campos antes mencionados. El tipo de campo para todos ellos es VARCHAR y su longitud depende del diseo. Conviene no decidirse por grandes longitudes, ya que se despilfarrara espacio de memoria, y se penalizara los tiempos de respuesta. Siempre es posible aumentar la longitud de algn campo mediante el uso de comandos en lnea sin prdida del contenido. En las reducciones de la longitud del campo, hay riesgo de prdida de informacin.
- 11 -