SQLpage es un creador de aplicaciones web solo para SQL . Está destinado a científicos de datos, analistas y equipos de inteligencia empresarial para crear potentes aplicaciones centradas en datos rápidamente, sin preocuparse por ninguno de los conceptos y lenguajes de programación web tradicionales.
Con SQLPage, escribe archivos .sql
simples que contienen consultas a su base de datos para seleccionar, agrupar, actualizar, insertar y eliminar sus datos, y obtiene páginas web limpias y atractivas que muestran sus datos como texto, listas, cuadrículas, gráficos y formularios. .
Código | Resultado |
SELECCIONAR 'lista' como componente, 'Sitios web populares' como título;SELECCIONAR nombre como título, URL como enlace, tipo de CASO CUANDO 1 ENTONCES 'azul' MÁS 'rojo' FINAL como color, descripción, ícono, activo DESDE el sitio web; | |
SELECCIONE 'gráfico' como componente, 'Ingresos trimestrales' como título, 'área' como tipo; SELECCIONE trimestre AS x, SUMA(ingresos) AS yDE finanzasGRUPO POR trimestre | |
SELECCIONE 'formulario' como componente, 'Usuario' como título, 'Crear nuevo usuario' como validación; SELECCIONAR nombre, tipo, marcador de posición, requerido, descripción DESDE user_form;INSERT INTO userSELECT $first_name, $last_name, $birth_dateWHERE $first_name NO ES NULO; | |
seleccione 'pestaña' como componente, verdadero como centro; seleccione 'Mostrar todas las tarjetas' como título, '?' como enlace, $tab es nulo como activo; seleccione formato('Mostrar %s tarjetas', color) como título, formato('?tab=%s', color) como enlace, $tab=color como activo de tab_example_cardsgroup por color; seleccione 'tarjeta' como componente; seleccione título, descripción, color image_url como top_image, enlace desde tab_example_cardsdonde $tab es nulo o $tab = color; seleccione 'texto' como componente, sqlpage.read_file_as_text('footer.md') como contenido_md |
SQLite, incluida la capacidad de cargar extensiones como Spatialite .
PostgreSQL y otras bases de datos compatibles como YugabyteDB , CockroachDB y Aurora .
MySQL y otras bases de datos compatibles como MariaDB y TiDB .
Microsoft SQL Server y todas las bases de datos y proveedores compatibles, como Azure SQL y Amazon RDS .
Lea la guía oficial de introducción en el sitio web de SQLPage.
La forma más sencilla de comenzar es descargar la última versión desde la página de versiones.
Descarga el binario que corresponda a tu sistema operativo (linux, macos o windows).
Descomprimirlo: tar -xzf sqlpage-*.tgz
Ejecútelo: ./sqlpage.bin
Para ejecutar en un servidor, puede usar la imagen de la ventana acoplable:
instalar la ventana acoplable
En una terminal, ejecute el siguiente comando:
docker run -it --name sqlpage -p 8080:8080 --volume "$(pwd):/var/www" --rm lovasoa/sqlpage
( "$(pwd):/var/www"
permite que sqlpage ejecute archivos sql desde su directorio de trabajo actual)
Cree un archivo llamado index.sql con el contenido de este ejemplo.
Abra https://localhost:8080 en su navegador
Opcionalmente, también puede montar un directorio que contenga el archivo de configuración de sqlpage, componentes personalizados y migraciones (ver configuración.md) en /etc/sqlpage
en el contenedor.
docker run -it --name sqlpage -p 8080:8080 --volume "$(pwd)/source:/var/www" --volume "$(pwd)/configuration:/etc/sqlpage:ro" --rm lovasoa/sqlpage
Por ejemplo, puedes usar:
Y coloque su sitio web en una carpeta llamada source
y su sqlpage.json
en una carpeta llamada configuration
.
Si desea crear su propia imagen de Docker, no se recomienda tomar la imagen de sqlpage sin formato como base, ya que está extremadamente simplificada y probablemente no contendrá las dependencias que necesita. En su lugar, puedes tomar Debian como base y simplemente copiar el binario sqlpage de la imagen oficial a tu propia imagen:
DESDE debian:stable-slimCOPY --from=lovasoa/sqlpage:main /usr/local/bin/sqlpage /usr/local/bin/sqlpage
Proporcionamos archivos binarios compilados solo para la arquitectura x86_64, pero proporcionamos imágenes de Docker para otras arquitecturas, incluidas arm64 y armv7. Si desea ejecutar SQLPage en una Raspberry Pi o en una instancia de nube ARM más económica, utilizar la imagen de la ventana acoplable es la forma más sencilla de hacerlo.
Una alternativa para los usuarios de Mac OS es utilizar el paquete homebrew de SQLPage.
instalar cerveza casera
En una terminal, ejecute los siguientes comandos:
brew install sqlpage
SQLPage es un servidor web escrito en Rust y distribuido como un único archivo ejecutable. Cuando recibe una solicitud a una URL que termina en .sql
, busca el archivo SQL correspondiente, lo ejecuta en la base de datos y le pasa información de la solicitud web como parámetros de declaración SQL. Cuando la base de datos comienza a devolver filas para la consulta, SQLPage asigna cada pieza de información de la fila a un parámetro en una de las plantillas de sus componentes predefinidos y transmite el resultado al navegador del usuario.
Lista de tareas pendientes: una aplicación sencilla de lista de tareas pendientes que ilustra cómo crear una aplicación CRUD básica con SQLPage.
Gráficos, tablas, formularios e interactividad: una breve demostración bien comentada que muestra cómo utilizar gráficos, tablas, formularios e interactividad para filtrar datos según un parámetro de URL.
Pequeño clon dividido: una aplicación de seguimiento de gastos compartidos
Corporate Enundrum: un juego de mesa implementado en SQL
Formularios maestro-detalle: muestra cómo implementar un conjunto simple de formularios para insertar datos en tablas de bases de datos que tienen una relación de uno a muchos.
Documentación y sitio web oficial de SQLPage: el código fuente SQL del sitio oficial del proyecto, https://sql.datapage.app
Galería de imágenes: una galería de imágenes donde los usuarios pueden iniciar sesión y cargar imágenes. Ilustra la implementación de un sistema de autenticación de usuarios utilizando cookies de sesión y el manejo de la carga de archivos.
Gestión de usuarios: una demostración de autenticación con registro de usuario, inicio de sesión, cierre de sesión y páginas confidenciales. Utiliza PostgreSQL.
Creación de una API JSON e integración de componentes de React en la interfaz: muestra cómo integrar un componente de reacción en un sitio web de SQLPage y cómo crear fácilmente una API REST con SQLPage.
Manejo de cargas de archivos: una galería de imágenes donde los usuarios autenticados pueden publicar nuevas imágenes a través de un formulario de carga.
Importación masiva de datos desde archivos CSV: un formulario simple que permite a los usuarios importar archivos CSV para completar una tabla de base de datos.
Ejemplo de autenticación avanzada utilizando procedimientos almacenados de PostgreSQL
Aplicación web compleja en SQLite con gestión de usuarios, carga de archivos, gráficos, mapas, tablas, menús,...
Inicio de sesión único: un ejemplo de cómo implementar la autenticación OAuth y OpenID Connect (OIDC) en SQLPage. La demostración también incluye un cliente CAS (Servicio de autenticación central).
Tema oscuro: muestra cómo permitir al usuario alternar entre un tema claro y un tema oscuro, y almacenar las preferencias del usuario.
Puede probar todos los ejemplos en línea sin instalar nada en su computadora usando la demostración en línea de SQLPage en Replit.
SQLPage se puede configurar a través de un archivo de configuración ubicado en sqlpage/sqlpage.json
o variables de entorno como DATABASE_URL
o LISTEN_ON
.
Para obtener más información, lea configuration.md
.
Además, se pueden crear componentes personalizados colocando archivos .handlebars
en sqlpage/templates
. Ejemplo.
SQLPage admite HTTP/2 y HTTPS de forma nativa y transparente. Simplemente configure SQLPAGE_HTTPS_DOMAIN=example.com
y SQLPage solicitará automáticamente un certificado confiable y comenzará a cifrar todo el tráfico de su usuario con él. ¡Sin tediosas configuraciones manuales para usted y sin molestos mensajes de "La conexión no es segura" para sus usuarios!
Puede ejecutar SQLpage sin servidor compilándolo en una función AWS Lambda. Una forma sencilla de hacerlo es utilizar la imagen de la ventana acoplable proporcionada:
ventana acoplable build -t sqlpage-lambda-builder. -f lambda.Dockerfile --generador de destino ventana acoplable ejecute sqlpage-lambda-builder cat implementar.zip > sqlpage-aws-lambda.zip
Luego puede agregar sus propios archivos SQL a sqlpage-aws-lambda.zip
y cargarlos en AWS Lambda, seleccionando Tiempo de ejecución personalizado en Amazon Linux 2 como tiempo de ejecución.
Cuando ejecuta sin servidor, puede incluir los archivos SQL directamente en la imagen que está implementando. Pero si desea poder actualizar sus archivos SQL sobre la marcha sin crear una nueva imagen, puede almacenar los archivos directamente dentro de la base de datos, en una tabla que tiene la siguiente estructura:
CREAR TABLA sqlpage_files( ruta VARCHAR(255) NO CLAVE PRIMARIA NULA, contenido BLOB, last_modified TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
Asegúrate de actualizar last_modified
cada vez que actualices el contenido de un archivo (o hazlo dentro de un TRIGGER). SQLPage volverá a analizar un archivo de la base de datos solo cuando haya sido modificado.
actix web maneja solicitudes HTTP a una velocidad increíble,
tabler se encarga del diseño de componentes limpios y de aspecto profesional,
Tabler Icons es un gran conjunto de iconos que puede seleccionar directamente desde su SQL,
Los manillares representan páginas HTML a partir de plantillas legibles para cada componente.
¿Por qué utilizar SQL en lugar de un lenguaje de programación real? ¡SQL ni siquiera está completo en Turing!
Te estás centrando en el tema equivocado. Si puede expresar su aplicación de forma declarativa, debería hacerlo, ya sea utilizando SQL u otro lenguaje. El código declarativo suele ser más conciso, legible, más fácil de razonar y de depurar que el código imperativo.
SQL es más simple que los lenguajes tradicionales, a menudo legible por personas que no son programadores, pero muy poderoso.
Si su objetivo es la complejidad, tenga en cuenta que SQL en realidad es Turing completo.
Incluso sin consultas recursivas, una secuencia de declaraciones SQL impulsadas por las interacciones del usuario (como SQLPage) seguiría siendo Turing completa, lo que le permitiría crear un sitio web basado en SQL que funcione como una máquina de Turing.
Sólo porque puedas no significa que debas...
- alguien siendo malo en Reddit
No se trata de "debería", sino de "¿por qué no?". Siga coloreando dentro de las líneas si lo desea, pero estaremos aquí divirtiéndonos con nuestros sitios web SQL.
¿Es lo mismo que Microsoft Access?
Los objetivos son similares (crear aplicaciones simples centradas en datos), pero las herramientas difieren significativamente:
SQLPage es un servidor web, no una aplicación de escritorio.
SQLPage se conecta a bases de datos relacionales sólidas existentes; Access intenta ser una base de datos.
El acceso es costoso y propietario; SQLPage es de código abierto.
SQLPage le ahorra el tormento de Visual Basic para Aplicaciones.
¿Es el nombre una referencia a Microsoft FrontPage?
FrontPage fue un creador de sitios web visual estático popular a finales de los años 90. No había oído hablar de ello hasta que alguien me preguntó.
Me gusta el CSS. Quiero diseñar sitios web, no escribir SQL.
Si desea escribir su propio HTML y CSS, puede crear componentes personalizados agregando un archivo .handlebars
en sqlpage/templates
y escribiendo su HTML y CSS allí. (Ejemplo). También puede utilizar el componente html
para escribir HTML sin formato o el componente shell
para incluir scripts y estilos personalizados.
Pero SQLPage cree que no debería preocuparse por los radios de los bordes de los botones hasta que tenga un prototipo funcional. Proporcionamos componentes atractivos listos para usar para que pueda concentrarse en su modelo de datos e iterarlo rápidamente.
SQLPage está disponible para descargar desde múltiples fuentes:
¡Agradecemos las contribuciones! SQLPage está construido con Rust y utiliza javascript básico para sus partes frontales.
Consulte nuestra Guía de contribución para obtener instrucciones detalladas sobre la configuración del desarrollo, las pruebas y el proceso de solicitud de extracción.