Translate

Mostrando las entradas con la etiqueta Sinatra. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Sinatra. Mostrar todas las entradas

sábado, 18 de agosto de 2018

Haciendo un proyecto con scalatra

Scalatra es el Sinatra de scala.

Para el que no conoce Sinatra es un framework que permite hacer paginas web con las menores configuraciones y desarrollo posible. Trata de acelerar el desarrollo manteniendo un modelo simple y convención antes de configuración.  Y el mismo espíritu tiene Scalatra.

Vamos hacer un proyecto con sbt.

Vamos a la consola y hacemos:

sbt new scalatra/scalatra.g8

Luego nos va pedir un montón de datos, pero es fácil saber a que se refiere dado que presenta unos ejemplos.

Y con eso ya estamos, podemos ejecutar esto con el comando :

sbt jetty:start

Y podemos chequearlo en la url: http://localhost:8080/

Como funciona?

La clase MyScalatraServlet capta el método get / y responde con la vista.

import org.scalatra._

class MyScalatraServlet extends ScalatraServlet {

  get("/") {
    views.html.hello()
  }

}

Dejo link: http://scalatra.org/

miércoles, 10 de mayo de 2017

Primeros pasos en Sinatra


Donde nos lleva la vida, no? Nunca pensé que tenia que retomar mis estudios en ruby y mucho menos con Sinatra. Pero esta bueno, volver a leer un lenguaje que me gusta mucho.

Si quieren saber que es Sinatra, acá tenemos un post:
http://emanuelpeg.blogspot.com.ar/2012/11/sinatra-rapida-creacion-de-aplicaciones.html

Empecemos por el principio, instalar Ruby. Eso es muy fácil y si usan linux :

sudo apt-get install ruby-full

En distros Debian, Ubuntu, Mint o cualquier derivado de debian que use apt.

$ sudo yum install ruby

En distros rhel y para otras distros: https://www.ruby-lang.org/es/documentation/installation/

También tenemos que instalar el software de instalación de paquetes RubyGem.

$  sudo apt-get install rubygems 

En distros Debian, Ubuntu, Mint o cualquier derivado de debian que use apt.

$  sudo yum install rubygems 

En distros rhel.

Vamos a ver la versión que instalamos con el comando:

ruby -v

Si dice algo así hemos tenido éxito:

ruby 2.3.1p112 (2016-04-26) [x86_64-linux-gnu]

Ya tenemos ruby las gemas, y ahora lo necesitamos a Sinatra:

$  gem install sinatra  

Esto hará que nuestro sistema descargue todas las dependencias como Rack y otras utilidades, aparte de la documentación oficial para varios de estos componentes, de forma que tengamos ayuda cuando queramos ejecutar algún comando en particular.

Ya una vez que tenemos instalado Sinatra y sus dependencias, empezar a utilizarlo , simplemente debemos crear un nuevo proyecto, es decir, una carpeta donde almacenar nuestros archivos y crear un archivo que llamaremos ejemplo.rb (muy original)

~ $ mkdir ejemplo
~ $ cd ejemplo
 ~/ejemplo $ nano ejemplo.rb

Y ahora escribimos el siguiente código:

require 'sinatra'

get '/' do
  "Hola, mundo!"
end

Y ya estamos, ahora a ejecutarlo:

$ ruby ejemplo.rb

Si todo salio bien tenemos la siguiente salida o parecida :

 /var/lib/gems/2.3.0/gems/rack-2.0.2/lib/rack/show_exceptions.rb:16: warning: already initialized constant Rack::ShowExceptions::CONTEXT
/usr/lib/ruby/vendor_ruby/rack/showexceptions.rb:16: warning: previous definition of CONTEXT was here
/var/lib/gems/2.3.0/gems/rack-2.0.2/lib/rack/show_exceptions.rb:114: warning: already initialized constant Rack::ShowExceptions::TEMPLATE
/usr/lib/ruby/vendor_ruby/rack/showexceptions.rb:115: warning: previous definition of TEMPLATE was here
[2017-05-10 22:44:39] INFO  WEBrick 1.3.1
[2017-05-10 22:44:39] INFO  ruby 2.3.1 (2016-04-26) [x86_64-linux-gnu]
== Sinatra (v1.4.7) has taken the stage on 4567 for development with backup from WEBrick
[2017-05-10 22:44:39] INFO  WEBrick::HTTPServer#start: pid=26437 port=4567

Lo importante es que levanto un servidor WEBrick en el puerto 4567 es decir que deberíamos ver un hermoso hola mundo en : http://localhost:4567/


martes, 22 de abril de 2014

Flask es un microframework para Python basado en Werkzeug, Jinja 2 y las buenas intenciones.


Flask es un microframework para Python basado en Werkzeug, Jinja 2 y las buenas intenciones. Jeje, que buena presentación!

Se acuerdan que les hable de Sinatra, un microframework para Ruby que inspiro a otros microframework, quiero presentarles un hijo de Sinatra ya bastante maduro para Python, Flask.

La idea es hacer paginas web en tiempo récord, veamos un ejemplo:

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hola Mundo!"

if __name__ == "__main__":
    app.run()

Lo ejecutamos de la siguiente manera:

$ python hello.py
 * Running on http://127.0.0.1:5000/

Y ya tenemos un "Hola Mundo"!!!

Rápido y fácil de utilizar, de esta manera podemos describir a Flask. Y además se encuentra bajo licencia BSD!

Dejo el link:
http://flask.pocoo.org/
http://flask.pocoo.org/docs/

domingo, 23 de junio de 2013

Bottle: Python Web Framework


Se acuerdan de Sinatra? no el cantante! Sinatra el framework web de ruby; básicamente la idea es poder hacer una pagina web con muy poco esfuerzo. Es como un DSL para realizar paginas web; para que puede servir esto? para hacer prototipos o tambien puede ser muy practico para colgar servicios rest con json y consumirlo con javascript. La idea de sinatra  se extrapolo a otros frameworks, tecnologias y lenguajes; como por ejemplo Bottle que es el sinatra para Python.

Bottle es un micro framework rápido, sencillo y ligero para Python. Se distribuye como un módulo y esta formado por un único archivo y no tiene dependencias distintas de la biblioteca estándar de Python.

Veamos un ejemplo de un hola mundo con bottle:

from bottle import route, run, template

@route('/hello/<name>')
def index(name='World'):
    return template('<b>Hello {{name}}</b>!', name=name)

run(host='localhost', port=8080)

Y listo tenemos una pagina!

Como podemos ver en ejemplo por medio de @route indicamos la url y le decimos que nos van a pasar el nombre por la url, es decir usamos url restfull. Luego retornamos la pagina web. Podemos formar json y devolver json para hacer una API Rest o podemos utilizar template para hacer paginas webs. Genial!

Y si enviamos un mensaje con este framework va a ser...


Dejo link:
http://bottlepy.org
http://bottlepy.org/docs/dev/index.html


miércoles, 7 de noviembre de 2012

Sinatra, rápida creación de aplicaciones web en Ruby con el mínimo esfuerzo



Sinatra es un framework para aplicaciones web de software libre y código abierto. La idea es interesante es un dsl para hacer paginas webs. Utilizando Ruby se puede hacer paginas webs muy rápidamente.  Sinatra es pequeño y flexible. Sinatra no sigue el típico patrón modelo vista controlador que se ve en otros frameworks, como Ruby on Rails. En su lugar, Sinatra se enfoca en la "rápida creación de aplicaciones web en Ruby con el mínimo esfuerzo."

Me imagino que se puede utilizar en prototipos desechables o en hacer sitios poco complejos.





Veamos un ejemplo de una pagina simple:


#!/usr/bin/env ruby -I ../lib -I lib
require 'sinatra'
get('/') { 'this is a simple app' }

Y ya esta una pagina simple pero completa con 2 lineas de código. Esta filosofia se extendio a otras tecnologias y se puede usar framework similares a Sinatra en muchos lenguajes; saco la lista de la wikipedia:


PHP

JavaScript

Python

Erlang

Groovy

Scala

.NET

Perl

Java

Tengo muchas ganas de probar la version de scala, scalatra.

Dejo link:
http://es.wikipedia.org/wiki/Sinatra_(software)
http://www.sinatrarb.com