An Elementary Introduction to the Wolfram Language
36Construcción de sitios web y aplicaciones
Con Wolfram Language es relativamente sencillo subir a la web cualquier cosa que haya uno creado.
In[1]:=
Click for copyable input
Out[1]=
In[2]:=
Click for copyable input
Out[2]=
A menos que se indique lo contrario, CloudDeploy crea una nueva página web, con una dirección única. Si uno se dirige a esa página, ahí encontrará su gráfico.
In[3]:=
Click for copyable input
Out[3]=
Quienquiera que tenga la dirección en la web (URL) puede entrar ahí y ver lo que se ha hecho. URLShorten construye un URL abreviado que es más fácil de comunicar a otras personas.
In[4]:=
Click for copyable input
Out[4]=
In[5]:=
Click for copyable input
Out[5]=
CloudDeploy primero efectúa todo el proceso de cómputo que pueda y, a continuación, sube el resultado a la web. Esto significa, por ejemplo, que CloudDeploy[Now] desplegará una página web que siempre muestra la hora a la que fue desplegada. Si, en cambio, se quiere desplegar una página que muestre la hora presente cada vez que se entre a ella, habrá que utilizar CloudDeploy[Delayed[Now]].
Use Delayed para diseñar un reloj que se regenere cada vez que se entre a la página correspondiente:
In[6]:=
Click for copyable input
Out[6]=
In[7]:=
Click for copyable input
Out[7]=
La idea básica es establecer una FormFunction que defina la estructura del formulario, así como la acción a tomar una vez que se envía el formulario.
In[8]:=
Click for copyable input
Out[8]=
Si se accede a esa dirección en la web, se obtiene un formulario:
Al enviar el formulario, se obtiene una foto de un tigre:
Genere un Manipulate con un formulario:
In[9]:=
Click for copyable input
Out[9]=
Despliegue en la red un formulario que acepte dos números:
In[10]:=
Click for copyable input
Out[10]=
Los campos del formulario pueden admitir cadenas de caracteres ("String"), enteros ("Integer") o fechas ("Date"), entre cientos de cosas diversas.
Cuando haya entradas de tipo mundo real, tales como "Animal" o "City", CloudDeploy integra campos inteligentes en el formulario, de manera automática, que se indican mediante , y que recurren a la comprensión de lenguaje natural para interpretar el contenido que se ingrese en ellas. Para tipos más abstractos de entrada, tales como números, se puede escoger, por ejemplo, entre "Number", "SemanticNumber" o "ComputedNumber".
"Number" admite solo números explícitos, tal como 71. "SemanticNumber" admite también números en lenguaje natural, tal como seventy-one. "ComputedNumber" también acepta números que necesiten calcularse, tales como 20th prime number.
Admite números especificados en lenguaje natural:
In[11]:=
Click for copyable input
Out[11]=
Seventy-one funciona como un número semántico; en cambio, para encontrar el primo se requiere un número calculado:
Si se especifica un tipo de entrada como "Image", hay controles especiales para capturar la imagen, tales como el acceso directo a la cámara o a la galería de fotos en un dispositivo móvil.
In[12]:=
Click for copyable input
Out[12]=
En un dispositivo móvil, se puede obtener la imagen de la cámara:
FormFunction es para construir formularios de un solo paso: Se llena el formulario, se oprime Submit y se obtiene un resultado. En caso de que se desee otro resultado, hay que regresar al formulario y enviarlo de nuevo. FormPage permite construir páginas que incluyen el formulario junto con la respuesta, como haría, por ejemplo, Wolfram|Alpha o un motor de búsqueda.
In[13]:=
Click for copyable input
Out[13]=
Se puede cambiar el campo y enviar el formulario otra vez para obtener un nuevo resultado:
36.1Despliegue en la web un mapa de la ubicación actual. »
Muestra de salida esperada:
Out[]=
36.2Despliegue en la nube un mapa que muestre la ubicación presente inferida del usuario. »
Muestra de salida esperada:
Out[]=
36.3Despliegue en la nube un sitio web que muestre un número aleatorio nuevo, hasta el 1 000, en tamaño 100, cada vez que se visite. »
Muestra de salida esperada:
Out[]=
36.4Despliegue en la nube un formulario al que se le ingrese un número x y de como resultado x^x»
Muestra de salida esperada:
Out[]=
36.5Despliegue en la nube un formulario que calcule x^y cuando se le den los números x y y»
Muestra de salida esperada:
Out[]=
36.6Despliegue un formulario en la nube que reciba el tópico de una página de Wikipedia y regrese la nube de palabras para esa página. »
Muestra de salida esperada:
Out[]=
36.7Despliegue en la nube una página de formulario que reciba una cadena de caracteres y regrese repetidamente su versión en orden inverso, en tamaño 50. »
Muestra de salida esperada:
Out[]=
36.8Despliegue en la nube una página de formulario que reciba un entero n y genere repetidamente la imagen de un polígono de n lados y con color aleatorio. »
Muestra de salida esperada:
Out[]=
36.9Despliegue en la nube una página de formulario que reciba una ubicación y un número n, y regrese repetidamente un mapa de los n volcanes más próximos a esa ubicación. »
Muestra de salida esperada:
Out[]=
+36.1Cree un sitio web que muestre un polígono regular de color rojo, con un número aleatorio de lados, entre 3 y 8, cada vez que se visite. »
Muestra de salida esperada:
Out[]=
+36.2Despliegue un formulario en la nube que reciba los números x y y en inglés (p. ej., eight) y calcule x^y»
Muestra de salida esperada:
Out[]=
Son UUID (identificadores universales únicos), suficientemente largos como para asegurar que la probabilidad de que se creen dos idénticos, en la historia del universo, sea abrumadoramente pequeña.
Se pide el formato usando ExportForm (o bien especificándolo dentro de FormFunction). Los formatos más comunes incluyen GIF, PNG, JPEG, SVG, PDF y HTMLFragment. (Nótese que form en ExportForm se refiere a una forma o tipo de salida, y no a formulario para rellenar).
Se usa EmbedCode para generar el código HTML necesario.
Simplemente se dice, por ejemplo, {"s", "Enter a string here"} "String". Por defecto, la etiqueta para un campo es el nombre que se usó para la variable correspondiente a dicho campo. Puede usarse cualquier etiqueta para un campo, incluyendo gráficos, etc.
¿Cómo se especifican los valores iniciales, o por defecto, en un campo de formulario?
Se dice, p. ej., "n""Integer"100.
Se usa Restricted. Por ejemplo, Restricted["Number", {0, 10}] especifica que un número esté entre 0 y 10. Restricted["Location", Plain] especifica una ubicación en Italia.
Para empezar, se pueden usar opciones tales como FormTheme. Para tener mayor control, puede colocarse un FormObject dentro de una FormFunction, y ahí dar instrucciones con todo detalle. Se pueden incluir cualesquier encabezados, textos o estilos como los que aparecerían en un cuaderno.
Los formularios, ¿pueden tener casillas de verificación, deslizadores, etc.?
Sí. Pueden usarse los mismos controles que Manipulate, incluyendo casillas de verificación, botones de radio, menús emergentes, deslizadores, selectores de color, etc.
Sí. Las especificaciones para los campos pueden incluir temas como RepeatingElement y CompoundElement. Los formularios pueden consistir en listas de páginas, incluyendo las que se puedan generar sobre la marcha. (Si la lógica se vuelve muy complicada, probablemente haya que usar AskFunction mejor que FormFunction).
En la nube . O, en la práctica: en computadoras ubicadas en lugares en todo el mundo.
APIFunction trabaja de manera parecida a FormFunction, excepto que crea una API de web que puede llamarse dando los parámetros en una consulta de URL. EmbedCode permite tomar una APIFunction, y generar el código para llamar la API desde muchos lenguajes y ambientes de programación externos.
 
Download Notebook Version
en