SQLpage는 SQL 전용 웹앱 빌더입니다. 이는 데이터 과학자, 분석가 및 비즈니스 인텔리전스 팀이 기존 웹 프로그래밍 언어 및 개념에 대해 걱정할 필요 없이 강력한 데이터 중심 애플리케이션을 신속하게 구축할 수 있도록 하기 위한 것입니다.
SQLPage를 사용하면 데이터를 선택, 그룹화, 업데이트, 삽입 및 삭제하기 위한 쿼리가 포함된 간단한 .sql
파일을 데이터베이스에 작성하고 데이터를 텍스트, 목록, 그리드, 플롯 및 양식으로 표시하는 보기 좋고 깔끔한 웹 페이지를 얻을 수 있습니다. .
암호 | 결과 |
선택하다 구성요소로 '목록', 제목으로 '인기 웹사이트';SELECT 이름을 제목으로, URL을 링크로, CASE 유형 WHEN 1 THEN '파란색' 다른 '빨간색' 색상으로 종료, 설명, 아이콘, 활성FROM 웹사이트; | |
SELECT '차트'를 구성요소로, '분기별 수익'을 제목으로, '지역'을 유형으로 선택;SELECT 분기 AS x, SUM(수익) AS yFROM 재정GROUP BY 분기 | |
구성 요소로 '양식', 제목으로 '사용자', 유효성 검사로 '새 사용자 만들기'를 선택합니다.SELECT 이름, 유형, 자리 표시자, 필수, 설명FROM user_form;INSERT INTO userSELECT $first_name, $last_name, $birth_dateWHERE $first_name은 NULL이 아닙니다. | |
구성 요소로 '탭'을 선택하고 중앙으로 true를 선택하고 제목으로 '모든 카드 표시'를 선택하고 '?' 링크로, $tab은 활성 상태이므로 null입니다. 선택 format('%s 카드 표시', color)를 제목으로, format('?tab=%s', color)을 링크로, $tab=색상은 tab_example_cards그룹에서 색상별로 활성화됩니다. 구성 요소로 '카드'를 선택하고 선택 제목, 설명, 색상 image_url을 top_image로, linkfrom tab_example_cards에서 $tab이 null이거나 $tab = color; 구성 요소로 'text' 선택,content_md로 sqlpage.read_file_as_text('footer.md') |
Spatialite 와 같은 확장을 로드하는 기능을 포함한 SQLite.
PostgreSQL 및 YugabyteDB , CockroachDB 및 Aurora 와 같은 기타 호환 데이터베이스.
MySQL 및 MariaDB 및 TiDB 와 같은 기타 호환 데이터베이스.
Microsoft SQL Server 및 Azure SQL 및 Amazon RDS 와 같은 모든 호환 가능한 데이터베이스 및 공급자.
SQLPage 웹사이트에서 공식 시작 가이드를 읽어보세요.
시작하는 가장 쉬운 방법은 릴리스 페이지에서 최신 릴리스를 다운로드하는 것입니다.
운영 체제(Linux, macos, windows)에 해당하는 바이너리를 다운로드하세요.
압축 해제: tar -xzf sqlpage-*.tgz
실행하세요: ./sqlpage.bin
서버에서 실행하려면 docker 이미지를 사용하면 됩니다.
도커 설치
터미널에서 다음 명령을 실행합니다.
docker run -it --name sqlpage -p 8080:8080 --volume "$(pwd):/var/www" --rm lovasoa/sqlpage
( "$(pwd):/var/www"
사용하면 sqlpage가 현재 작업 디렉터리에서 sql 파일을 실행할 수 있습니다.)
이 예제의 내용으로 index.sql이라는 파일을 만듭니다.
브라우저에서 https://localhost:8080을 엽니다.
선택적으로 sqlpage의 구성 파일, 사용자 정의 구성 요소 및 마이그레이션(configuration.md 참조)이 포함된 디렉터리를 컨테이너의 /etc/sqlpage
에 마운트할 수도 있습니다.
docker run -it --name sqlpage -p 8080:8080 --volume "$(pwd)/source:/var/www" --volume "$(pwd)/configuration:/etc/sqlpage:ro" --rm lovasoa/sqlpage
예를 들어 다음을 사용할 수 있습니다.
그리고 웹사이트를 source
폴더에 넣고 sqlpage.json
을 configuration
폴더에 넣으세요.
자신만의 도커 이미지를 구축하려는 경우 원시 sqlpage 이미지를 기본으로 사용하는 것은 권장되지 않습니다. 그 이유는 이 이미지가 매우 단순하고 필요한 종속성을 포함하지 않을 수 있기 때문입니다. 대신 데비안을 기본으로 사용하여 공식 이미지의 sqlpage 바이너리를 자신의 이미지로 복사하면 됩니다.
FROM debian:stable-slimCOPY --from=lovasoa/sqlpage:main /usr/local/bin/sqlpage /usr/local/bin/sqlpage
우리는 x86_64 아키텍처에 대해서만 컴파일된 바이너리를 제공하지만 arm64 및 armv7을 포함한 다른 아키텍처에 대해서는 도커 이미지를 제공합니다. Raspberry Pi 또는 더 저렴한 ARM 클라우드 인스턴스에서 SQLPage를 실행하려면 Docker 이미지를 사용하는 것이 가장 쉬운 방법입니다.
Mac OS 사용자를 위한 대안은 SQLPage의 homebrew 패키지를 사용하는 것입니다.
홈브류 설치
터미널에서 다음 명령을 실행합니다.
brew install sqlpage
SQLPage는 Rust로 작성되어 단일 실행 파일로 배포되는 웹 서버입니다. .sql
로 끝나는 URL에 대한 요청을 받으면 해당 SQL 파일을 찾아 데이터베이스에서 실행하고 웹 요청의 정보를 SQL 문 매개 변수로 전달합니다. 데이터베이스가 쿼리에 대한 행을 반환하기 시작하면 SQLPage는 행의 각 정보를 미리 정의된 구성 요소 템플릿 중 하나의 매개 변수에 매핑하고 결과를 사용자 브라우저로 다시 스트리밍합니다.
TODO 목록: SQLPage를 사용하여 기본 CRUD 애플리케이션을 만드는 방법을 보여주는 간단한 할 일 목록 애플리케이션입니다.
플롯, 테이블, 양식 및 상호 작용: URL 매개변수를 기반으로 데이터를 필터링하기 위해 플롯, 테이블, 양식 및 상호 작용을 사용하는 방법을 보여주는 설명이 잘 설명된 짧은 데모입니다.
작은 분할 클론: 공유 비용 추적 앱
기업의 수수께끼: SQL로 구현된 보드 게임
마스터-세부 양식: 일대다 관계가 있는 데이터베이스 테이블에 데이터를 삽입하기 위한 간단한 양식 세트를 구현하는 방법을 보여줍니다.
SQLPage 자체 공식 웹사이트 및 문서: 프로젝트 공식 사이트의 SQL 소스 코드 https://sql.datapage.app
이미지 갤러리: 사용자가 로그인하고 이미지를 업로드할 수 있는 이미지 갤러리입니다. 세션 쿠키를 사용한 사용자 인증 시스템 구현과 파일 업로드 처리를 보여줍니다.
사용자 관리: 사용자 등록, 로그인, 로그아웃 및 기밀 페이지가 포함된 인증 데모입니다. PostgreSQL을 사용합니다.
JSON API 만들기 및 프런트엔드에 React 구성 요소 통합: SQLPage 웹 사이트에 반응 구성 요소를 통합하는 방법과 SQLPage를 사용하여 REST API를 쉽게 구축하는 방법을 보여줍니다.
파일 업로드 처리: 인증된 사용자가 업로드 양식을 통해 새 이미지를 게시할 수 있는 이미지 갤러리입니다.
CSV 파일에서 대량 데이터 가져오기: 사용자가 CSV 파일을 가져와서 데이터베이스 테이블을 채울 수 있는 간단한 양식입니다.
PostgreSQL 저장 프로시저를 사용한 고급 인증 예시
사용자 관리, 파일 업로드, 플롯, 지도, 테이블, 메뉴 등을 갖춘 SQLite의 복잡한 웹 애플리케이션...
Single Sign-On: SQLPage에서 OAuth 및 OIDC(OpenID Connect) 인증을 구현하는 방법의 예입니다. 데모에는 CAS(중앙 인증 서비스) 클라이언트도 포함되어 있습니다.
어두운 테마: 사용자가 밝은 테마와 어두운 테마 사이를 전환하고 사용자 기본 설정을 저장하는 방법을 보여줍니다.
SQLPage의 relit 온라인 데모를 사용하면 컴퓨터에 아무것도 설치하지 않고도 온라인으로 모든 예제를 시험해 볼 수 있습니다.
SQLPage는 sqlpage/sqlpage.json
에 있는 구성 파일이나 DATABASE_URL
또는 LISTEN_ON
과 같은 환경 변수를 통해 구성할 수 있습니다.
자세한 내용은 configuration.md
참조하세요.
또한 sqlpage/templates
에 .handlebars
파일을 배치하여 사용자 정의 구성 요소를 생성할 수 있습니다. 예.
SQLPage는 기본적으로 투명하게 HTTP/2 및 HTTPS를 지원합니다. SQLPAGE_HTTPS_DOMAIN=example.com
으로 설정하면 SQLPage가 자동으로 신뢰할 수 있는 인증서를 요청하고 이를 통해 사용자의 모든 트래픽을 암호화하기 시작합니다. 지루한 수동 구성도 없고 사용자에게 짜증나는 "연결이 안전하지 않습니다" 메시지도 없습니다!
SQLpage를 AWS Lambda 함수로 컴파일하여 서버리스로 실행할 수 있습니다. 이를 수행하는 쉬운 방법은 제공된 도커 이미지를 사용하는 것입니다.
docker build -t sqlpage-lambda-builder . -f Lambda.Dockerfile --대상 빌더 docker run sqlpage-lambda-builder cat 배포.zip > sqlpage-aws-lambda.zip
그런 다음 sqlpage-aws-lambda.zip
에 자체 SQL 파일을 추가하고 이를 AWS Lambda에 업로드하여 Amazon Linux 2의 사용자 지정 런타임을 런타임으로 선택하면 됩니다.
서버리스를 실행하는 경우 배포 중인 이미지에 SQL 파일을 직접 포함할 수 있습니다. 그러나 새 이미지를 생성하지 않고 즉시 SQL 파일을 업데이트하려면 파일을 데이터베이스 내부의 다음 구조를 가진 테이블에 직접 저장할 수 있습니다.
CREATE TABLE sqlpage_files( 경로 VARCHAR(255) NOT NULL 기본 키, 내용 BLOB, last_modified TIMESTAMP 기본 CURRENT_TIMESTAMP);
파일 내용을 업데이트할 때마다(또는 TRIGGER 내에서 업데이트할 때마다) last_modified
업데이트하세요. SQLPage는 파일이 수정된 경우에만 데이터베이스에서 파일을 다시 구문 분석합니다.
actix 웹은 놀라운 속도로 HTTP 요청을 처리합니다.
Tabler는 전문적으로 보이는 깔끔한 구성 요소의 스타일링을 처리합니다.
테이블러 아이콘은 SQL에서 직접 선택할 수 있는 대규모 아이콘 세트입니다.
핸들바는 각 구성 요소에 대해 읽을 수 있는 템플릿에서 HTML 페이지를 렌더링합니다.
실제 프로그래밍 언어 대신 SQL을 사용하는 이유는 무엇입니까? SQL은 Turing-complete도 아닙니다!
당신은 잘못된 문제에 집중하고 있습니다. 애플리케이션을 선언적으로 표현할 수 있다면 SQL을 사용하든 다른 언어를 사용하든 그렇게 해야 합니다. 선언적 코드는 명령형 코드보다 더 간결하고 읽기 쉽고 추론하기 쉽고 디버깅하기 쉬운 경우가 많습니다.
SQL은 기존 언어보다 단순하고 프로그래머가 아닌 사람도 읽을 수 있는 경우가 많지만 매우 강력합니다.
복잡성이 목표라면 SQL은 실제로 Turing-complete라는 점에 유의하세요.
재귀 쿼리가 없더라도 사용자 상호 작용(예: SQLPage)에 의해 구동되는 일련의 SQL 문은 여전히 Turing-complete이므로 Turing 시스템으로 작동하는 SQL 기반 웹 사이트를 구축할 수 있습니다.
당신이 할 수 없다고 해서 당신이 해야 한다는 것을 의미하는 것은 아닙니다...
— Reddit에서 누군가가 못되게 굴고 있어요
"해야 한다"에 관한 것이 아니라 "왜 안돼?"에 관한 것입니다. 원한다면 줄 안쪽을 계속 색칠하세요. 하지만 우리는 여기에서 SQL 웹 사이트를 재미있게 즐길 것입니다.
이것은 Microsoft Access와 동일합니까?
간단한 데이터 중심 애플리케이션을 만드는 목표는 비슷하지만 도구는 크게 다릅니다.
SQLPage는 데스크톱 앱이 아닌 웹 서버입니다.
SQLPage는 기존의 강력한 관계형 데이터베이스에 연결됩니다. Access는 데이터베이스가 되려고 합니다.
액세스는 비용이 많이 들고 독점적입니다. SQLPage는 오픈 소스입니다.
SQLPage는 Visual Basic for Application의 고통으로부터 여러분을 구해줍니다.
이름이 Microsoft FrontPage에 대한 참조입니까?
FrontPage는 90년대 후반에 인기를 끌었던 시각적인 정적 웹 사이트 빌더였습니다. 누군가가 물어보기 전까지 나는 그것에 대해 들어 본 적이 없었습니다.
나는 CSS를 좋아한다. 나는 SQL을 작성하는 것이 아니라 웹사이트를 디자인하고 싶다.
자신만의 HTML 및 CSS를 작성하려면 sqlpage/templates
에 .handlebars
파일을 추가하고 거기에 HTML 및 CSS를 작성하여 사용자 정의 구성 요소를 만들 수 있습니다. (예). html
구성 요소를 사용하여 원시 HTML을 작성하거나 shell
구성 요소를 사용하여 사용자 정의 스크립트 및 스타일을 포함할 수도 있습니다.
그러나 SQLPage는 작동하는 프로토타입이 완성될 때까지 버튼 테두리 반경에 대해 걱정할 필요가 없다고 믿습니다. 우리는 귀하가 데이터 모델에 집중하고 빠르게 반복할 수 있도록 멋진 구성 요소를 즉시 제공합니다.
SQLPage는 여러 소스에서 다운로드할 수 있습니다.
우리는 기여를 환영합니다! SQLPage는 Rust로 구축되었으며 프런트엔드 부분에 바닐라 자바스크립트를 사용합니다.
개발 설정, 테스트 및 끌어오기 요청 프로세스에 대한 자세한 지침은 기여 가이드를 확인하세요.