formatear a html datos y links dentro de un campo mysql
punchik punchik
punchikk en yahoo.com
Mar Jun 17 06:43:33 CEST 2008
hola, gracias por tu respuesta, me parece interesante eso que propones de darle dos clicks a la palabra , para buscarla solo una vez.
Tienes algun ejemplo o tutorial de como hacer esto?
o por donde podria empezar? por ejemplo como hacer para que con dos clicks en una palabra haga la llamada via html form al script del servidor?
gracias
--- On Mon, 6/16/08, Alexis Roda <alexis.roda.villalonga en gmail.com> wrote:
> From: Alexis Roda <alexis.roda.villalonga en gmail.com>
> Subject: Re: [Python-es] formatear a html datos y links dentro de un campo mysql
> To: "Lista de discusión sobre python en castellano" <python-es en aditel.org>
> Date: Monday, June 16, 2008, 1:29 PM
> En/na punchik punchik ha escrit:
> > hola amigos, tengo dos preguntas:
> > tengo una base de datos en mysql , la base de datos
> de una tabla con un diccionario, osea dos campos, la
> palabra y su descripcion, luego hize un pequeno script en
> python que va en el servidor y lee de un pagina web via
> formularios la palabra que la gente intruduce y luego
> conecta con la base de datos e imprime como html el
> resultado. La pregunta que tengo es, mis descripciones son
> bastantes largas y me gustaria que el html que se genera
> con la descripcion respete los saltos de lineas, para que
> se vea mas ordenado, ya que el script de python imprime
> todo , sin respetar salto de lineas. como podria hacer
> esto?
> >
>
> Tienes que incluir etiquetas HTML. Puedes probar con algo
> como:
>
> for parrafo in definicion.split('\n') :
> print "<p>%s</p>" % parrafo
>
> > ademas me gustaria que si aparece en mi descripcion
> alguna palabra que tambien esta en el campo
> "palabra" que se formatee como hiperlink o link
> para darle click y ver la descripcion de esa palabra sin
> tener que estar regresando y tipeando la palabra en el
> formulario.
>
> Esto es mas complicado de implementar bien.
>
> La idea básica es iterar sobre la definición palabra por
> palabra,
> buscarla en la base de datos y dependiendo de si existe o
> no generar
> código HTML para un link o texto. Algo como:
>
> import re
> separador = re.compile('\W+')
>
> def existe_palabra(palabra) :
> # busca la palabra en la base de datos, si la encuentra
> # devuelve True, sino False
>
> for palabra in separador.split(definicion) :
> if existe_palabra(palabra) :
> print "<a
> href="URL?termino=%s">%s</a>" %
> (palabra, palabra)
> else :
> print palabra
>
> Tiene varios problemas:
>
> 1. la palabra debe coincidir exactamente con lo que hay en
> la base de
> datos. Si el texto dice "casas" y en la BD dice
> "casa" no la encontrará
> y no generará el link.
>
> 2. tal como lo he puesto en el ejemplo se pierden los
> saltos de linea
>
> 3. es muy ineficiente, cada palabra requiere una consulta a
> la base de
> datos.
>
> 4. si una misma palabra aparece dos veces requiere dos
> consultas.
>
>
> Personalmente me gusta la solución para 3 i 4 de:
>
> http://dictionary.cambridge.org/define.asp?key=75675&dict=CALD
> http://ec.grec.net/lexicx.jsp?GECART=0007813
>
> si haces doble click sobre una palabra se dispara una
> búsqueda. De esta
> forma solo compruebas si existe una palabra cada vez, si
> existe muestras
> la definición y sino un mensaje de error.
>
>
>
>
> Saludos
> _______________________________________________
> Lista de correo Python-es
> http://listas.aditel.org/listinfo/python-es
> FAQ: http://listas.aditel.org/faqpyes
_______________________________________________
Lista de correo Python-es
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes
Más información sobre la lista de distribución Python-es