Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > Python
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-04-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Chris Ver Mensaje
Por otro lado, algunos desarrolladores PHP no vean problemas con mezclar código PHP, JavaScript, CSS, HTML en un mismo archivo.
Y es una cosa horrible de hacer. Pero no es culpa de PHP sino del programador.

Es como en todo, por ejemplo Delphi. Su IDE rad ha propiciado desde siempre la factura de aplicaciones donde todo el código de interfaz, lógica y acceso a datos está mezclado.

Pero eso no demerita a Delphi. Desde luego

// Saludos
Responder Con Cita
  #2  
Antiguo 04-04-2011
Avatar de D-MO
D-MO D-MO is offline
Miembro
 
Registrado: ago 2005
Ubicación: root@debian:/#
Posts: 1.042
Poder: 20
D-MO Va por buen camino
¿Y si les dijera que Python por si solo es igual o peor que php?... Claro, desde el punto de vista de mezclar código html, javascript, python.

Pues eso, porfavor veamos el siguiente código:
Código:
#!/usr/bin/env python
# -*- coding: UTF-8 -*-

# enable debugging
import cgitb
cgitb.enable()

print "Content-Type: text/plain;charset=utf-8"
print

print "<html><head><title>Hola</title></head><body>"

print "<ul>"

for i in range(10):
  print "<li>Hola %s</li>" % str(i)

print "</ul>"

print "</body></html>"
El código anterior es un archivo .py accesible desde el navegador, vía mod_python o bien via fasc_cgi.

Si ponemos PHP y Python en el mismo escenario veremos que realmente no hay mucha diferencia. La ventaja de Python en la web, como yo lo veo, han sido los frameworks.
Responder Con Cita
  #3  
Antiguo 04-04-2011
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Cita:
Empezado por D-MO Ver Mensaje
Si ponemos PHP y Python en el mismo escenario veremos que realmente no hay mucha diferencia. La ventaja de Python en la web, como yo lo veo, han sido los frameworks.
Tienes toda la razón, gracias a Dios, nadie trabaja así en Python. No hay que olvidar que la diferencia de Python es que no nació para la Web a cómo PHP. Además, para PHP existen varias frameworks y parece que nunca han visto problemas en trabajar de esta forma, simplemente porque el mezclar código de presentación y de lógica está en el ADN de PHP.
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #4  
Antiguo 04-04-2011
Avatar de D-MO
D-MO D-MO is offline
Miembro
 
Registrado: ago 2005
Ubicación: root@debian:/#
Posts: 1.042
Poder: 20
D-MO Va por buen camino
Cita:
Empezado por Chris Ver Mensaje
...la diferencia de Python es que no nació para la Web a cómo PHP.
¿Y quién ha dicho lo contrario?... además, en este momento, la comparación es en ambiente web... ¿o no?
Responder Con Cita
  #5  
Antiguo 04-04-2011
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Cita:
Empezado por roman Ver Mensaje
Y es una cosa horrible de hacer. Pero no es culpa de PHP sino del programador.
Yo creo que sí es culpa de PHP. No hay otra forma de escribir código de primas a primera. Además es la forma en que te enseñan el lenguaje.
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #6  
Antiguo 04-04-2011
Avatar de D-MO
D-MO D-MO is offline
Miembro
 
Registrado: ago 2005
Ubicación: root@debian:/#
Posts: 1.042
Poder: 20
D-MO Va por buen camino
Cita:
Empezado por Chris Ver Mensaje
...Además es la forma en que te enseñan el lenguaje.
¿Y esto es culpa de PHP?
Responder Con Cita
  #7  
Antiguo 04-04-2011
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Cita:
Empezado por D-MO Ver Mensaje
¿Y esto es culpa de PHP?
Técnicamente hablando, talvez no. Pero la filosofía y ADN del lenguaje si tiene la culpa de ello.

Nunca he visto un curso de introducción a PHP que te enseñe el lenguaje para otra cosa que no sea la Web. Con un php crudo, a cómo viene de fábrica, sino incluyes código HTML, CSS, JS en un archivo *.php nunca podrás hacer una página web. Es a eso que me refiero.
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #8  
Antiguo 04-04-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Chris Ver Mensaje
Nunca he visto un curso de introducción a PHP que te enseñe el lenguaje para otra cosa que no sea la Web. Con un php crudo, a cómo viene de fábrica, sino incluyes código HTML, CSS, JS en un archivo *.php nunca podrás hacer una página web. Es a eso que me refiero.
El objetivo de PHP es programar para la web. ¿Y? ¿Qué con eso? Y lo segundo que dices es incorrecto. El problema no estriba en la capacidad de PHP de mezclar código HTML y PHP. Es más, no hay problema en mezclar ambos. El problema está en mezclar código de interfaz con código del modelo o de acceso a los datos. Y esta mezcla puede darse en cualquier lenguaje.

// Saludos
Responder Con Cita
  #9  
Antiguo 04-04-2011
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Cita:
Empezado por roman Ver Mensaje
Y es una cosa horrible de hacer. Pero no es culpa de PHP sino del programador.
Cita:
Empezado por roman Ver Mensaje
El problema no estriba en la capacidad de PHP de mezclar código HTML y PHP. Es más, no hay problema en mezclar ambos. El problema está en mezclar código de interfaz con código del modelo o de acceso a los datos. Y esta mezcla puede darse en cualquier lenguaje.
Dices una cosa, luego otra... Pero independientemente, quiero que quede claro que esto es una opinión personal. Ya he dicho que para algunos esto no es problema, como para tí, Román y otro compañeros. Pero para otros talvez sí lo sea. Entre ellos los desarrolladores de Symfony 2.0.

Cita:
Empezado por roman Ver Mensaje
El objetivo de PHP es programar para la web. ¿Y? ¿Qué con eso?
Ningún problema! De hecho el soporte para tecnologías web es muy bueno e incluso en algunos casos mejor que la gran mayoría. Pero a pesar de esa especialización, mi critica va en sentido de que nunca se ha podido solventar el problema de la mezcla de código.

Talvez, nosotros como programadores no veamos problema a esto. Pero en equipos donde meten mano personas que no son programadores puede serlo. O también puede ser que parte del sistema pueda verse comprometida al estar expuesto su código a todo el mundo. Creo que en estos casos es algo a tener en cuenta.
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #10  
Antiguo 04-04-2011
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
Chris... en python (no se nada de python), ¿si no usas django podrias generar una simple pagina web sin mezclar html con python?
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
  #11  
Antiguo 04-04-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Chris
Dices una cosa, luego otra...
No, no. Es que no me estás entendiendo y cuando dices:

Cita:
Empezado por Chris
Ya he dicho que para algunos esto no es problema, como para tí, Román y otro compañeros.
nos pones en la misma condición que

Cita:
Empezado por Chris
Por otro lado, algunos desarrolladores PHP no vean problemas con mezclar código PHP, JavaScript, CSS, HTML en un mismo archivo
Yo jamás mezclo javascript, css y html. O, por lo menos, cuando lo hago sé que estoy haciendo porquerías

Ahora, veamos lo de la mezcla de PHP y HTML.

¿Se pueden mezclar? Sí.

¿Se deben mezclar? Depende.

Una cosa es que en un mismo script pongas todo el código de conexión al servidor, consulta de datos, implementación de la lógica y, para colmo, generación de HTML. Eso, en mi opinión, es incorrecto.

Pero nadie te obliga a una mezcla así tan libertina. Incluso sin recurrir a cosas como SMARTY puedes tener plantillas muy limpias donde el único código PHP que ves es básicamente para "rellenar huecos" e iterar una lista de objetos.

A eso me refiero.

// Saludos
Responder Con Cita
  #12  
Antiguo 04-04-2011
Avatar de D-MO
D-MO D-MO is offline
Miembro
 
Registrado: ago 2005
Ubicación: root@debian:/#
Posts: 1.042
Poder: 20
D-MO Va por buen camino
Cita:
Empezado por Chris Ver Mensaje
...la mezcla de código.
En Python es de sí o sí meter el html dentro de una cadena para "imprimirla" y mostrarla en pantalla.

Lo que pasa es que comparas el sistema de plantilla se Django con un archivo único de php. ¿Está esto balanceado?

Pongamos las cosas por igual, con Python a Django Template Language y con PHP a Dwoo, el escenario es el siguiente:

El usuario hace una petición a la página precio_actualizado.html con la intención de que se le muestre el precio alctual del producto X.

Django:

app_name/views.py
Código:
def precio_actualizado(request, page):

    precio = 12345
    
    return direct_to_template(request, template='precio_actualizado.html', {'nuevo_precio': precio )

template/precio_actualizado.html
Código:
<html>
<head>
  <title>Precio Actualizado</title>
</head>

<body>
  El precio actual es {{  nuevo_precio }}
</body>
</html>
Con PHP + Dwoo:
precio_actualizado.php
Código PHP:
<?php
 
include 'path/to/dwooAutoload.php'
 
$dwoo = new Dwoo(); 
 
$precio 12345
 
$dwoo
->output('templates/precio_actualizado.tpl', array('nuevo_precio'=> $precio ));
 
?>
templates/precio_actualizado.tpl
Código:
<html>
<head>
  <title>Precio Actualizado</title>
</head>

<body>
  El precio actual es { $nuevo_precio }
</body>
</html>
El ejemplo quizá no sea el mas complejo pero sirve para que nos demos cuenta que con ambos podemos trabajar de la misma manera y casi con la misma plantilla. Ahora, ¿Que dices?

Saludos.
Responder Con Cita
  #13  
Antiguo 04-04-2011
Avatar de D-MO
D-MO D-MO is offline
Miembro
 
Registrado: ago 2005
Ubicación: root@debian:/#
Posts: 1.042
Poder: 20
D-MO Va por buen camino
Cita:
Empezado por Chris Ver Mensaje
Técnicamente hablando, talvez no.
¿Entonces?

Cita:
Empezado por Chris Ver Mensaje
Pero la filosofía y ADN del lenguaje si tiene la culpa de ello.
Explícame.

Cita:
Empezado por Chris Ver Mensaje
Nunca he visto un curso de introducción a PHP que te enseñe el lenguaje para otra cosa que no sea la Web.
Culpa de quienes redactan el curso, créeme.

Cita:
Empezado por Chris Ver Mensaje
Con un php crudo, a cómo viene de fábrica, sino incluyes código HTML, CSS, JS en un archivo *.php nunca podrás hacer una página web. Es a eso que me refiero.
Vuelvo con lo mismo de mi post anterior, con python pasa igual (o quizá peor). Hablando de las plantillas de Django, estas funcionan tal cual gracias al motor de plantillas que este framework ha implementado, este se llama Django Template Languaje, esta no es una característica de Python, sino de Django. Con php pasa lo mismo, tenemos smarty, otros 19, y muchos mas.

Cuando hagamos una comparación (sea de lo que sea) sugeriría empaparnos un poco mas de ambos elementos.
Responder Con Cita
  #14  
Antiguo 04-04-2011
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Cita:
Empezado por D-MO Ver Mensaje
Vuelvo con lo mismo de mi post anterior, con python pasa igual (o quizá peor). Hablando de las plantillas de Django, estas funcionan tal cual gracias al motor de plantillas que este framework ha implementado, este se llama Django Template Languaje, esta no es una característica de Python, sino de Django. Con php pasa lo mismo, tenemos smarty, otros 19, y muchos mas.

Cuando hagamos una comparación (sea de lo que sea) sugeriría empaparnos un poco mas de ambos elementos.
Lo sé. Pero a Python no se lo discuto porque no ha sido pensado/dirigido para la Web. Si te fijas, cuando la mayoría se refiere a Python para proyectos Web, utiliza más frecuentemente el termino Django. Solo un loco se atrevería a desarrollar un proyecto web con un Python crudo (a cómo viene de fábrica).

Cita:
Empezado por D-MO Ver Mensaje
¿Entonces? ...
Explícame. ...
Culpa de quienes redactan el curso, créeme. ...
A pesar de los años que lleva PHP especializándose para el desarrollo web, ¿existe alguna forma fácil de hacer una página web dinámica sin mezclar código PHP y HTML?
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #15  
Antiguo 04-04-2011
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
Es claro algo... para la web todo lo que dices del potencial de python es mas gracias a django que al mismo python... como bien dices... nadie se atreveria a hacer una web con python "de fabrica" creo que es porque tendrian que hacer lo que tanto odias de PHP (combinar html y php)

ahora... con los frwameworks de php (que hay muchos unos buenos y otros malos) puedes obtener MVC. Ej: symfony

A mi personalmente no me agrada mucho el motor de plantillas smarty y prefiero "mezclar" php en los archivos de vista...

El siguiente ejemplo lista en una tabla los clientes del sistema:

Código PHP:
<?php 
    
include_once "{$curdir}/includes/security.php";

    
$element "Cliente";
    
$field_id "cliente_id";    
    
$element_page "cli_cliente";
    
    
$datos = new tge_clientes();
    
    echo 
$sitio->set_tgewin("Listado de {$element}s");
    
$datos->get_listado();
    
    
$edit_link "?c=prm_tercero&do=edit&id=<tercero_id>&rtrn=cli_clientes";
    
$assign_link "?c={$element_page}&id=<cliente_id>&do=assign&distribuidor_id=<distribuidor_id>";
    
    echo (new 
db_grid(array(
                
"caption" => "Listado de {$element}s.",
                
"showcount" => True,
                
"shownew" => True,
                
"linknew" => "?c={$element_page}&do=insert",
                
"showtotal" => True,
                
"paged" => False,
                
"showactions" => True,
                
"actions"=> array(
                    new 
grid_action("Asignar a distribuidor"6$assign_link),                
                    new 
grid_action("Editar {$element}"1$edit_link),
                    new 
grid_action("Eliminar {$element}"2"dialogs/confirmdel.php?lbl={$element}&a={$element_page}*do=delete&id=<{$field_id}>"true)
                ),        
                
"recordset"=> $datos->listado,
                
"field_id"=> $field_id,
                
"cols" => array(
                    
"tercero_empresa"=>'Empresa',
                    
"tercero_nombre_completo"=>'Nombre Completo',            
                    
"tercero_direccion"=>'Direccion',
                    
"tercero_telefono"=>'telefono',
                    
"tercero_email"=>'e-mail',
                    
"ciudad_nombre"=>'Ciudad',
                    
"distribuidor_marca"=>'Distribuidor'
                
),
                
"col_links"=> array(
                    
"tercero_email"=>"?c=herr_sendmail&email=<tercero_email>",
                    
"distribuidor_marca"=>$assign_link,
                ),
            )));
el resultado ya lo coloqué en un post anterior... y hasta con manejo de ajax.

por eso te vuelvo a preguntar:

Cita:
Chris... en python (no se nada de python), ¿si no usas django podrias generar una simple pagina web sin mezclar html con python?
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
  #16  
Antiguo 04-04-2011
Avatar de D-MO
D-MO D-MO is offline
Miembro
 
Registrado: ago 2005
Ubicación: root@debian:/#
Posts: 1.042
Poder: 20
D-MO Va por buen camino
Cita:
Empezado por Chris Ver Mensaje
¿existe alguna forma fácil de hacer una página web dinámica sin mezclar código PHP y HTML?
Mira mi mensaje anterior, ejemplo de Dwoo. Mira el anterior a este donde me pongo el link a 19 motores de plantillas para PHP.

Saludos
Responder Con Cita
  #17  
Antiguo 04-04-2011
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
Chris...

con un buen framework de php puedes obtener vistas muy limpias con el codigo php suficiente solo para mostrar datos. o incluso sin una sola linea de php (claro que esto no me gusta mucho cuando se usa smarty)

Con un profundo estudio de algunos buenos frwameworks podras obtener excelentes resultados...

Algunos hasta te ofrecerán usar ajax y JQueryUI sin necesidad de escribir ni una sola linea de javascript.
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Sus opiniones sobre la CLX Lord Delfos Varios 6 10-03-2010 15:21:15
Opiniones sobre la compra de Sun por Oracle D-MO Debates 3 05-01-2010 23:13:30
Tutorial de Python 'Python para todos' marcoszorrilla Noticias 11 15-02-2009 05:19:15
trabajo con perl alachaise Internet 0 23-11-2004 16:23:56
Opiniones sobre el Firebird 1.5RC3 para aplicaciones web victork_py Firebird e Interbase 2 04-07-2003 14:54:45


La franja horaria es GMT +2. Ahora son las 03:44:33.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi