miércoles, 3 de julio de 2013

Ensayo

El software libre tiene muchas tendencias y por ende muchas oportunidades y retos, en este
ensayo trataremos los más comunes e importantes, además de relacionar estos retos y
oportunidades con las existentes en Venezuela, entre ellas tenemos académico, técnico,
estratégico, legal, social e institucional, para ampliar la información click aquí

Ficha Técnica

Fue desarrollada una ficha técnica basada en el Proyecto GNU Venezuela, el cual se encuentra comprometido con la difusión del software libre en el país, para mayor información click aquí

Modelo UML

Desde el nacimiento del UML se normalizo la manera en la cual se planteaba y entendía un software desde el momento de sus concepción, a continuación el ejercicio realizado en relación a estas practicas, click aquí

Mapa Mental Software Libre

No existe mejor manera de representar un concepto que por medio de imágenes, de esta manera es mucho mas sencilla su compresión y análisis, a continuación el mapa mental enfocado en software libre, para observarlo hacer click aquí

Mapa Conceptual sobre Software Libre

A continuación el mapa conceptual enfocado en el Software Libre desarrollado por mi persona, para observarlo hacer click aqui



miércoles, 6 de junio de 2012

CRUD en Python con Archivos XML

Hola que tal, ya que me encuentro comenzando en el mundo de python aqui les envio un CRUD realizado por mi en PYTHON con archivos XML, espero le sirva a alguien asi como me sirvio a mi para aprender un poco, nos vemos!!!
(Cuidado con la Identación)

Codigo Python:

# -*- coding: utf-8 -*-
from xml.dom import minidom
arbol_dom = minidom.parse("/ruta/para/llegar/al/archivo.xml")

class Cliente():
   
    def __init__(self):
        print "Ejercicio CRUD en Pyton"+"\n"
        print "-----------------------"+"\n"   
        print "1- Listar"+"\n"
        print "2- Crear"+"\n"
        print "3- Modificar"+"\n"
        print "4- Eliminar"+"\n"
        print "5- Buscar"+"\n"
        print "6- Salir"+"\n"
        opcion = raw_input("Seleccione la opción deseada: ")
        self.Opciones(opcion)

    def Opciones(self, op):
        op=int(op)

        if op == 1:
            self.Listar()
            self.__init__()
        elif op == 2:
            print "Ingrese los datos a anexar a la base de datos"
            idcliente= raw_input("Ingrese un Id Cliente(Tenga en cuenta el ultimo existente) ")
            nombre= raw_input("Ingrese el Nombre ")
            ape= raw_input("Ingrese el Primer Apellido ")
            ape2= raw_input("Ingrese el Segundo Apellido ")
            obs= raw_input("Ingrese la Observacion en caso de existir ")           
            datos = [idcliente, nombre,ape, ape2, obs]
            self.Crear(datos)
            self.Listar()
            self.__init__()
        elif op == 3:
            id_mod= raw_input("Ingrese el Id del Cliente a Modificar ")
            nombre= raw_input("Ingrese el Nombre ")
            ape= raw_input("Ingrese el Primer Apellido ")
            ape2= raw_input("Ingrese el Segundo Apellido ")
            obs= raw_input("Ingrese la Observacion en caso de existir ")
            datos = [id_mod, nombre,ape, ape2, obs]
            self.Modificar(id_mod, datos)
            self.Listar()
            self.__init__()               
        elif op == 4:
            id_bo= raw_input("Ingrese el Id del Cliente a Eliminar ")
            self.Borrar(id_bo)
            self.Listar()
            self.__init__()
        elif op == 5:
            id_bu= raw_input("Ingrese el Id del Cliente a Buscar ")
            self.MostrarBusqueda(id_bu)
            self.__init__()       
        elif op == 6:
            print "Gracias por Usar el Sistema de Registro"+"\n"
            print "Licencia GNU - Recuerda Citar la fuente"+"\n"   
            print "Jonathan Ruiz 2012"   
        else:
            print "Ingrese una opcion correcta"+"\n"
            self.__init__()
           
                       
    def MostrarBusqueda(self, id_bu):
        print "Datos Obtenidos:"+"\n"
        nodoROW = self.Buscar(id_bu)
        fields= nodoROW.getElementsByTagName('field')
        for field in fields:
            print field.childNodes[0].data
        print "\n"    
           
               
   
    def Guardar(self):
        fichero = open("/home/asl/Desktop/CRUD/data_cliente.xml", "w")
        arbol_dom.writexml(fichero)
        fichero.close()           
       
   
    def Crear(self, datos):
        row = arbol_dom.createElement("row")
        nodoTABLE = arbol_dom.getElementsByTagName('table_data')
       
        #print nodoROW       
        nodoTABLE[0].appendChild(row)
       
        #creo las filas
        field = arbol_dom.createElement("field")
        field.setAttribute("name", "idcliente")
        row.appendChild(field)
        texto = arbol_dom.createTextNode(datos[0])
        field.appendChild(texto)

        field = arbol_dom.createElement("field")
        field.setAttribute("name", "nombre")
        row.appendChild(field)
        texto = arbol_dom.createTextNode(datos[1])
        field.appendChild(texto)

        field = arbol_dom.createElement("field")
        field.setAttribute("name", "apellido1")
        row.appendChild(field)
        texto = arbol_dom.createTextNode(datos[2])
        field.appendChild(texto)
   
        field = arbol_dom.createElement("field")
        field.setAttribute("name", "apellido2")
        row.appendChild(field)
        texto = arbol_dom.createTextNode(datos[3])
        field.appendChild(texto)

        field = arbol_dom.createElement("field")
        field.setAttribute("name", "observaciones")
        row.appendChild(field)
        texto = arbol_dom.createTextNode(datos[4])
        field.appendChild(texto)

       
        #Abro,escribo y cierro el archivo       
        self.Guardar()

        def Buscar(self,idcliente):

        rowB = None
        nodoROW = arbol_dom.getElementsByTagName('row')
               
        for a in nodoROW:
            field= a.getElementsByTagName('field')[0]
            value = int(field.firstChild.data)
            idcliente = int(idcliente)                       
           
            if value == idcliente:
                rowB = a
                                break
        return rowB

       
    def Listar(self):
        nodoROW = arbol_dom.getElementsByTagName('row')
        for a in nodoROW:
            fields= a.getElementsByTagName('field')
            for field in fields:
                value=field.childNodes[0].data
                print value
            print "\n"
           
   
   

    def Borrar(self, idcliente):
                rowB = self.Buscar(idcliente)
                rowB.parentNode.removeChild(rowB)
                self.Guardar()
                print "El Archivo ha sido Borrado"

   
    def Modificar(self, idcliente, datos):
        row_cliente = self.Buscar(idcliente)
        fields=row_cliente.getElementsByTagName('field')
        for field in fields:
            row_cliente.removeChild(field)
           

        #creo las filas
        field = arbol_dom.createElement("field")
        field.setAttribute("name", "idcliente")
        row_cliente.appendChild(field)
        texto = arbol_dom.createTextNode(datos[0])
        field.appendChild(texto)

        field = arbol_dom.createElement("field")
        field.setAttribute("name", "nombre")
        row_cliente.appendChild(field)
        texto = arbol_dom.createTextNode(datos[1])
        field.appendChild(texto)

        field = arbol_dom.createElement("field")
        field.setAttribute("name", "apellido1")
        row_cliente.appendChild(field)
        texto = arbol_dom.createTextNode(datos[2])
        field.appendChild(texto)
   
        field = arbol_dom.createElement("field")
        field.setAttribute("name", "apellido2")
        row_cliente.appendChild(field)
        texto = arbol_dom.createTextNode(datos[3])
        field.appendChild(texto)

        field = arbol_dom.createElement("field")
        field.setAttribute("name", "observaciones")
        row_cliente.appendChild(field)
        texto = arbol_dom.createTextNode(datos[4])
        field.appendChild(texto)

        self.Guardar()


#Cuerpo del Sistema
Cliente()








Codigo XML

<?xml version="1.0" ?><mysqldump xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<database name="curso_mysql">
    <table_data name="cliente">
    <row>
        <field name="idcliente">1</field>
        <field name="nombre">Daniel</field>
        <field name="apellido1">Fernandez</field>
        <field name="apellido2">R</field>
        <field name="observaciones">980Bs</field>
    </row>
    <row>
        <field name="idcliente">2</field>
        <field name="nombre">Joger</field>
        <field name="apellido1">Quintero</field>
        <field name="apellido2">E</field>
        <field name="observaciones">450Bs</field>
    </row>
    <row>
        <field name="idcliente">3</field>
        <field name="nombre">Maria</field>
        <field name="apellido1">Perez</field>
        <field name="apellido2">Lobo</field>
        <field name="observaciones">Ninguna</field>
    </row>
    <row>
        <field name="idcliente">4</field>
        <field name="nombre">Luis</field>
        <field name="apellido1">Lobo</field>
        <field name="apellido2">Sanchez</field>
        <field name="observaciones">Alto</field>
    </row>
    </table_data>
</database>
</mysqldump>






       

  

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Affiliate Network Reviews