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 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
  #2  
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
  #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 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
  #4  
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
  #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 movorack Ver Mensaje
Chris... en python (no se nada de python), ¿si no usas django podrias generar una simple pagina web sin mezclar html con python?
No, ya ho ha dicho D-MO. De hecho en Python es pero que en PHP, pues necesita incluir "echo's" para todo.
__________________
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
La solución propuesta por roman es perfectamente aceptable. Yo he citado los motores de plantillas para poner a PHP en la misma posición que Django.

Saludos.
Responder Con Cita
  #7  
Antiguo 04-04-2011
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Cita:
Empezado por movorack Ver Mensaje
Chris... en python (no se nada de python), ¿si no usas django podrias generar una simple pagina web sin mezclar html con python?
Si claro. Es de hecho la forma natural de hacerlo.

Esto es el estilo estandar de trabajar con cadenas:

Código:
print "Una cadena que muestra %(variable)s" % {'variable':123}
Y la libreria estandar tiene un sistema de plantillas:

http://docs.python.org/release/2.5.2/lib/node40.html

Por eso, en python es la forma natural de casi todos los frameworks de sitios web, el usar plantillas. De hecho, hay muchas:

http://www.webwareforpython.org/Papers/Templates/

(Hay un par que permite codigo espaguetti, pero en la comunidad de python no es popular. Eso es para la gente que viene de otros lenguajes)
__________________
El malabarista.
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
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
  #9  
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
  #10  
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
Pero, incluso puede ser así:

Código PHP:
<html>
<head>
  <title>Precio Actualizado</title>
</head>

<body>
  El precio actual es <?php echo $nuevo_precio ?>
</body>
</html>
Y, anunque no es exacto, el uso de la plantilla puede ser algo tan simple como:

Código PHP:
$nuevo_precio 12345;
include(
"/templates/precio_actualizado.tpl"); 
Es decir, que en la plantilla sí se estaría mezcando código HTML y PHP. El punto es que esto no necesariamente es malo.

Repito, lo malo es la mezcla de código de presentación y código de la lógica.

// Saludos
Responder Con Cita
  #11  
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
Estimados compañeros, mejor dejemos la discusión que no llegamos a nada. No se trata que porque en A no se pueda, entonces le perdonamos a B que tampoco se pueda. Además el tema tiende a preferencias, lo que hará que nunca estemos de acuerdo. Hay quienes prefieran tener la posibilidad de colocar código PHP en las plantillas. Es una gran posibilidad para crear plantillas más "potentes" y además tener mejor control. Aunque esto último es relativo. Pero hay otro que prefiramos las cosas más limpias desde nuestros puntos de vista.

Al G. pidió opiniones, y la mía es en síntesis que, al ser PHP un lenguaje especializado para la Web, ya debió o debería de proporcionar herramientas o métodos que de forma fácil permitan a los desarrolladores no mezclar código HTML y PHP si lo prefieren. Talvez integrar dentro del lenguaje a Dwoo, por dar un ejemplo, a cómo una vez lo hicieron con el Plugin de MySql.

Y por último, cómo un niño necio que le encanta "jincar" , no me gusta la sintaxis de C++Script, digo PHP
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
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
...Talvez integrar dentro del lenguaje a Dwoo
¿Y para qué integrarlo si el desarrollador tiene la libertad de utilizar el motor de plantillas que desee?
Cita:
Empezado por Chris Ver Mensaje
...no me gusta la sintaxis de C++Script, digo PHP
Si no te gusta la sintaxis, pues bien, es tu decisión, eres libre de decidir que te gusta o que no, sin embargo, eso no significa que sea mejor o peor que otro.

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
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 23:24:31.


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