SQLpage é um construtor de webapp somente SQL . Destina-se a cientistas de dados, analistas e equipes de inteligência de negócios para criar rapidamente aplicativos poderosos centrados em dados, sem se preocupar com nenhuma das linguagens e conceitos tradicionais de programação da Web.
Com o SQLPage, você escreve arquivos .sql
simples contendo consultas ao seu banco de dados para selecionar, agrupar, atualizar, inserir e excluir seus dados, e obtém páginas da Web limpas e bonitas exibindo seus dados como texto, listas, grades, gráficos e formulários .
Código | Resultado |
SELECIONAR 'lista' como componente, 'Sites populares' como título;SELECIONE nome como título, url como link, Tipo de CASO QUANDO 1 ENTÃO 'azul' OUTRO 'vermelho' FIM como cor, descrição, ícone, site ativo do site; | |
SELECIONE 'gráfico' como componente, 'Receita Trimestral' como título, 'área' como tipo; SELECIONE trimestre AS x, SUM(receita) AS yFROM finançasGROUP BY trimestre | |
SELECIONE 'formulário' como componente, 'Usuário' como título, 'Criar novo usuário' como validação; SELECIONE nome, tipo, espaço reservado, obrigatório, descriptionFROM user_form;INSERT INTO userSELECT $first_name, $last_name, $birth_dateWHERE $first_name IS NOT NULL; | |
selecione 'tab' como componente, true como centro; selecione 'Mostrar todos os cartões' como título, '?' como ligação, $tab é nulo como ativo; selecione format('Mostrar %s cartões', cor) como título, format('?tab=%s', color) como link, $tab=cor como ativo de tab_example_cardsgrupo por cor; selecione 'cartão' como componente; selecione título, descrição, cor image_url como top_image, linkfrom tab_example_cardsonde $tab é nulo ou $tab = color; selecione 'texto' como componente, sqlpage.read_file_as_text('footer.md') como content_md |
SQLite, incluindo a capacidade de carregar extensões como Spatialite .
PostgreSQL e outros bancos de dados compatíveis, como YugabyteDB , CockroachDB e Aurora .
MySQL e outros bancos de dados compatíveis, como MariaDB e TiDB .
Microsoft SQL Server e todos os bancos de dados e provedores compatíveis, como Azure SQL e Amazon RDS .
Leia o guia oficial de primeiros passos no site do SQLPage.
A maneira mais fácil de começar é baixar a versão mais recente na página de lançamentos.
Baixe o binário que corresponde ao seu sistema operacional (linux, macos ou windows).
Descompacte-o: tar -xzf sqlpage-*.tgz
Execute: ./sqlpage.bin
Para executar em um servidor, você pode usar a imagem docker:
Instalar janela de encaixe
Em um terminal, execute o seguinte comando:
docker run -it --name sqlpage -p 8080:8080 --volume "$(pwd):/var/www" --rm lovasoa/sqlpage
( "$(pwd):/var/www"
permite que o sqlpage execute arquivos sql do seu diretório de trabalho atual)
Crie um arquivo chamado index.sql com o conteúdo deste exemplo
Abra https://localhost:8080 no seu navegador
Opcionalmente, você também pode montar um diretório contendo o arquivo de configuração do sqlpage, componentes personalizados e migrações (consulte configuration.md) para /etc/sqlpage
no contêiner.
docker run -it --name sqlpage -p 8080:8080 --volume "$(pwd)/source:/var/www" --volume "$(pwd)/configuration:/etc/sqlpage:ro" --rm lovasoa/sqlpage
Por exemplo, você pode usar:
E coloque seu site em uma pasta chamada source
e seu sqlpage.json
em uma pasta chamada configuration
.
Se você deseja construir sua própria imagem docker, não é recomendado usar a imagem sqlpage bruta como base, pois ela é extremamente simplificada e provavelmente não conterá as dependências necessárias. Em vez disso, você pode tomar o debian como base e simplesmente copiar o binário sqlpage da imagem oficial para sua própria imagem:
DE debian:stable-slimCOPY --from=lovasoa/sqlpage:main /usr/local/bin/sqlpage /usr/local/bin/sqlpage
Fornecemos binários compilados apenas para a arquitetura x86_64, mas fornecemos imagens docker para outras arquiteturas, incluindo arm64 e armv7. Se você deseja executar o SQLPage em um Raspberry Pi ou em uma instância de nuvem ARM mais barata, usar a imagem do docker é a maneira mais fácil de fazer isso.
Uma alternativa para usuários do Mac OS é usar o pacote homebrew do SQLPage.
Instale o homebrew
Em um terminal, execute os seguintes comandos:
brew install sqlpage
SQLPage é um servidor web escrito em ferrugem e distribuído como um único arquivo executável. Ao receber uma solicitação para uma URL terminada em .sql
, ele encontra o arquivo SQL correspondente, executa-o no banco de dados, passando-lhe informações da solicitação da web como parâmetros de instrução SQL. Quando o banco de dados começa a retornar linhas para a consulta, o SQLPage mapeia cada informação na linha para um parâmetro em um dos modelos de seus componentes predefinidos e transmite o resultado de volta ao navegador do usuário.
Lista TODO: um aplicativo simples de lista de tarefas, ilustrando como criar um aplicativo CRUD básico com SQLPage.
Gráficos, tabelas, formulários e interatividade: uma breve demonstração bem comentada que mostra como usar gráficos, tabelas, formulários e interatividade para filtrar dados com base em um parâmetro de URL.
Clone splitwise minúsculo: um aplicativo rastreador de despesas compartilhadas
Enigma Corporativo: um jogo de tabuleiro implementado em SQL
Formulários Master-Detail: mostra como implementar um conjunto simples de formulários para inserir dados em tabelas de banco de dados que possuem um relacionamento um-para-muitos.
Site oficial e documentação do próprio SQLPage: O código-fonte SQL do site oficial do projeto, https://sql.datapage.app
Galeria de imagens: uma galeria de imagens onde os usuários podem fazer login e fazer upload de imagens. Ilustra a implementação de um sistema de autenticação de usuário usando cookies de sessão e o tratamento de uploads de arquivos.
Gerenciamento de usuários: uma demonstração de autenticação com registro de usuário, login, logout e páginas confidenciais. Usa PostgreSQL.
Fazendo uma API JSON e integrando componentes React no frontend: mostra como integrar um componente react em um site SQLPage e como construir facilmente uma API REST com SQLPage.
Tratamento de uploads de arquivos: uma galeria de imagens onde usuários autenticados podem publicar novas imagens por meio de um formulário de upload.
Importação de dados em massa de arquivos CSV: um formulário simples que permite aos usuários importar arquivos CSV para preencher uma tabela de banco de dados.
Exemplo de autenticação avançada usando procedimentos armazenados PostgreSQL
Aplicação web complexa em SQLite com gerenciamento de usuários, upload de arquivos, plotagens, mapas, tabelas, menus, ...
Logon único: um exemplo de como implementar a autenticação OAuth e OpenID Connect (OIDC) no SQLPage. A demonstração também inclui um cliente CAS (Central Authentication Service).
Tema escuro: demonstra como permitir que o usuário alterne entre um tema claro e um tema escuro e armazene a preferência do usuário.
Você pode experimentar todos os exemplos online sem instalar nada em seu computador usando a demonstração online do SQLPage no replit.
SQLPage pode ser configurado por meio de um arquivo de configuração colocado em sqlpage/sqlpage.json
ou de variáveis de ambiente como DATABASE_URL
ou LISTEN_ON
.
Para obter mais informações, leia configuration.md
.
Além disso, componentes personalizados podem ser criados colocando arquivos .handlebars
em sqlpage/templates
. Exemplo.
SQLPage oferece suporte a HTTP/2 e HTTPS de forma nativa e transparente. Basta definir SQLPAGE_HTTPS_DOMAIN=example.com
e o SQLPage solicitará automaticamente um certificado confiável e começará a criptografar todo o tráfego do seu usuário com ele. Nenhuma configuração manual tediosa para você e nenhuma mensagem irritante de "A conexão não é segura" para seus usuários!
Você pode executar o SQLpage sem servidor compilando-o em uma função AWS Lambda. Uma maneira fácil de fazer isso é usar a imagem docker fornecida:
docker build -t sqlpage-lambda-builder. -f lambda.Dockerfile --target construtor docker execute sqlpage-lambda-builder cat deploy.zip > sqlpage-aws-lambda.zip
Você pode então simplesmente adicionar seus próprios arquivos SQL a sqlpage-aws-lambda.zip
e carregá-los no AWS Lambda, selecionando Tempo de execução personalizado no Amazon Linux 2 como tempo de execução.
Ao executar sem servidor, você pode incluir os arquivos SQL diretamente na imagem que está implantando. Mas se você quiser atualizar seus arquivos sql dinamicamente sem criar uma nova imagem, você pode armazenar os arquivos diretamente dentro do banco de dados, em uma tabela que possui a seguinte estrutura:
CREATE TABLE sqlpage_files(caminho VARCHAR(255) NOT NULL PRIMARY KEY, conteúdo BLOB, last_modified TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
Certifique-se de atualizar last_modified
toda vez que atualizar o conteúdo de um arquivo (ou faça isso dentro de um TRIGGER). O SQLPage analisará novamente um arquivo do banco de dados somente quando ele tiver sido modificado.
actix web lida com solicitações HTTP a uma velocidade incrível,
tabler cuida do estilo para componentes limpos com aparência profissional,
ícones tabler é um grande conjunto de ícones que você pode selecionar diretamente do seu SQL,
o guidão renderiza páginas HTML a partir de modelos legíveis para cada componente.
Por que usar SQL em vez de uma linguagem de programação real? SQL nem está completo em Turing!
Você está se concentrando na questão errada. Se você pode expressar seu aplicativo de forma declarativa, você deve fazê-lo, seja usando SQL ou outra linguagem. O código declarativo costuma ser mais conciso, legível, mais fácil de raciocinar e mais fácil de depurar do que o código imperativo.
SQL é mais simples que as linguagens tradicionais, muitas vezes legível por não-programadores, mas muito poderoso.
Se o seu objetivo for complexidade, observe que o SQL é, na verdade, Turing-completo.
Mesmo sem consultas recursivas, uma sequência de instruções SQL orientadas por interações do usuário (como SQLPage) ainda seria Turing-completa, permitindo que você construa um site baseado em SQL que funcione como uma máquina de Turing.
Só porque você pode, não significa que você deveria...
- alguém sendo mau no Reddit
Não se trata de "deveria" - trata-se de "por que não?" Continue colorindo dentro das linhas se quiser, mas estaremos aqui nos divertindo com nossos sites SQL.
É o mesmo que o Microsoft Access?
Os objetivos são semelhantes – criar aplicativos simples centrados em dados – mas as ferramentas diferem significativamente:
SQLPage é um servidor web, não um aplicativo de desktop.
SQLPage se conecta a bancos de dados relacionais robustos existentes; O Access tenta ser um banco de dados.
O acesso é caro e proprietário; SQLPage é de código aberto.
SQLPage poupa você do tormento do Visual Basic for Applications.
O nome é uma referência ao Microsoft FrontPage?
FrontPage era um construtor de sites visual estático popular no final dos anos 90. Eu não tinha ouvido falar disso até que alguém perguntou.
Eu gosto de CSS. Quero criar sites, não escrever SQL.
Se quiser escrever seu próprio HTML e CSS, você pode criar componentes personalizados adicionando um arquivo .handlebars
em sqlpage/templates
e escrevendo seu HTML e CSS lá. (Exemplo). Você também pode usar o componente html
para escrever HTML bruto ou o componente shell
para incluir scripts e estilos personalizados.
Mas o SQLPage acredita que você não deve se preocupar com os raios das bordas dos botões até ter um protótipo funcional. Fornecemos componentes bonitos prontos para uso para que você possa se concentrar em seu modelo de dados e iterar rapidamente.
SQLPage está disponível para download em várias fontes:
Aceitamos contribuições! SQLPage é construído com Rust e usa javascript vanilla para suas partes de frontend.
Confira nosso Guia de contribuição para obter instruções detalhadas sobre configuração de desenvolvimento, testes e processo de pull request.