SQLpage adalah pembuat aplikasi web khusus SQL . Hal ini dimaksudkan bagi ilmuwan data, analis, dan tim intelijen bisnis untuk membangun aplikasi data-sentris yang kuat dengan cepat, tanpa mengkhawatirkan bahasa dan konsep pemrograman web tradisional apa pun.
Dengan SQLPage, Anda menulis file .sql
sederhana yang berisi kueri ke database Anda untuk memilih, mengelompokkan, memperbarui, menyisipkan, dan menghapus data Anda, dan Anda mendapatkan halaman web bersih yang bagus yang menampilkan data Anda sebagai teks, daftar, kisi, plot, dan formulir .
Kode | Hasil |
MEMILIH 'daftar' sebagai komponen, 'Situs web populer' sebagai judul;PILIH nama sebagai judul, url sebagai tautan, Jenis KASUS KAPAN 1 MAKA 'biru' LAIN 'merah' AKHIR sebagai warna, deskripsi, ikon, situs web aktifDARI; | |
PILIH 'grafik' sebagai komponen, 'Pendapatan Kuartalan' sebagai judul, 'area' sebagai jenis;PILIH kuartal AS x, JUMLAH(pendapatan) SEBAGAI yDARI keuangan KELOMPOK OLEH kuartal | |
PILIH 'formulir' sebagai komponen, 'Pengguna' sebagai judul, 'Buat pengguna baru' sebagai validasi;PILIH nama, jenis, placeholder, diperlukan, deskripsiFROM user_form;MASUKKAN KE penggunaSELECT $first_name, $last_name, $birth_dateWHERE $first_name BUKAN NULL; | |
pilih 'tab' sebagai komponen, true sebagai tengah; pilih 'Tampilkan semua kartu' sebagai judul, '?' sebagai tautan, $tab adalah null karena aktif;pilih format('Tampilkan %s kartu', warna) sebagai judul, format('?tab=%s', warna) sebagai tautan, $tab=warna aktifdari tab_example_cardskelompokkan berdasarkan warna; pilih 'kartu' sebagai komponen; pilih judul, deskripsi, warna image_url sebagai top_image, linkdari tab_example_cards di mana $tab adalah null atau $tab = color;pilih 'teks' sebagai komponen, sqlpage.read_file_as_text('footer.md') sebagai isi_md |
SQLite, termasuk kemampuan memuat ekstensi seperti Spatialite .
PostgreSQL, dan database lain yang kompatibel seperti YugabyteDB , CockroachDB dan Aurora .
MySQL, dan database lain yang kompatibel seperti MariaDB dan TiDB .
Microsoft SQL Server, dan semua database dan penyedia yang kompatibel seperti Azure SQL dan Amazon RDS .
Baca panduan resmi memulai di situs web SQLPage.
Cara termudah untuk memulai adalah mengunduh rilis terbaru dari halaman rilis.
Unduh biner yang sesuai dengan sistem operasi Anda (linux, macos, atau windows).
Buka kompresinya: tar -xzf sqlpage-*.tgz
Jalankan: ./sqlpage.bin
Untuk berjalan di server, Anda dapat menggunakan image buruh pelabuhan:
Instal buruh pelabuhan
Di terminal, jalankan perintah berikut:
docker run -it --name sqlpage -p 8080:8080 --volume "$(pwd):/var/www" --rm lovasoa/sqlpage
( "$(pwd):/var/www"
memungkinkan sqlpage menjalankan file sql dari direktori kerja Anda saat ini)
Buat file bernama index.sql dengan konten dari contoh ini
Buka https://localhost:8080 di browser Anda
Secara opsional, Anda juga dapat memasang direktori yang berisi file konfigurasi sqlpage, komponen khusus, dan migrasi (lihat konfigurasi.md) ke /etc/sqlpage
di dalam container.
docker run -it --name sqlpage -p 8080:8080 --volume "$(pwd)/source:/var/www" --volume "$(pwd)/configuration:/etc/sqlpage:ro" --rm lovasoa/sqlpage
Misalnya, Anda dapat menggunakan:
Dan tempatkan website Anda di folder bernama source
dan sqlpage.json
Anda di folder bernama configuration
.
Jika Anda ingin membuat image buruh pelabuhan Anda sendiri, tidak disarankan menggunakan image sqlpage mentah sebagai basis, karena image tersebut sangat disederhanakan dan mungkin tidak berisi dependensi yang Anda perlukan. Sebagai gantinya, Anda dapat menggunakan debian sebagai basis dan cukup menyalin biner sqlpage dari image resmi ke image Anda sendiri:
DARI debian:stable-slimCOPY --from=lovasoa/sqlpage:main /usr/local/bin/sqlpage /usr/local/bin/sqlpage
Kami menyediakan biner terkompilasi hanya untuk arsitektur x86_64, tetapi menyediakan gambar buruh pelabuhan untuk arsitektur lain, termasuk arm64 dan armv7. Jika Anda ingin menjalankan SQLPage di Raspberry Pi atau instance cloud ARM yang lebih murah, menggunakan image buruh pelabuhan adalah cara termudah untuk melakukannya.
Alternatif untuk pengguna Mac OS adalah dengan menggunakan paket homebrew SQLPage.
Instal minuman rumahan
Di terminal, jalankan perintah berikut:
brew install sqlpage
SQLPage adalah server web yang ditulis dengan karat dan didistribusikan sebagai satu file yang dapat dieksekusi. Ketika menerima permintaan ke URL yang diakhiri dengan .sql
, ia menemukan file SQL yang sesuai, menjalankannya di database, meneruskan informasi dari permintaan web sebagai parameter pernyataan SQL. Ketika database mulai mengembalikan baris untuk kueri, SQLPage memetakan setiap informasi dalam baris ke parameter di salah satu templat komponen yang telah ditentukan sebelumnya, dan mengalirkan hasilnya kembali ke browser pengguna.
Daftar TODO: aplikasi daftar tugas sederhana, yang menggambarkan cara membuat aplikasi CRUD dasar dengan SQLPage.
Plot, Tabel, formulir, dan interaktivitas: demo singkat dengan banyak komentar yang menunjukkan cara menggunakan plot, tabel, formulir, dan interaktivitas untuk memfilter data berdasarkan parameter URL.
Klon kecil yang terbagi dua: aplikasi pelacak pengeluaran bersama
Teka-teki Perusahaan: permainan papan yang diimplementasikan dalam SQL
Formulir Detail Master: menunjukkan cara mengimplementasikan sekumpulan formulir sederhana untuk memasukkan data ke dalam tabel database yang memiliki hubungan satu-ke-banyak.
Situs web dan dokumentasi resmi SQLPage: Kode sumber SQL untuk situs resmi proyek, https://sql.datapage.app
Galeri gambar: Galeri gambar tempat pengguna dapat masuk dan mengunggah gambar. Mengilustrasikan implementasi sistem otentikasi pengguna menggunakan cookie sesi, dan penanganan unggahan file.
Manajemen Pengguna: Demo autentikasi dengan registrasi pengguna, login, logout, dan halaman rahasia. Menggunakan PostgreSQL.
Membuat API JSON dan mengintegrasikan komponen React di frontend: Menunjukkan cara mengintegrasikan komponen reaksi di situs web SQLPage, dan cara mudah membuat REST API dengan SQLPage.
Menangani unggahan file: Galeri gambar tempat pengguna terotentikasi dapat mempublikasikan gambar baru melalui formulir unggah.
Impor data massal dari file CSV : Formulir sederhana yang memungkinkan pengguna mengimpor file CSV untuk mengisi tabel database.
Contoh autentikasi tingkat lanjut menggunakan prosedur tersimpan PostgreSQL
Aplikasi web kompleks di SQLite dengan manajemen pengguna, unggahan file, plot, peta, tabel, menu, ...
Sistem masuk tunggal: Contoh cara menerapkan autentikasi OAuth dan OpenID Connect (OIDC) di SQLPage. Demo ini juga menyertakan klien CAS (Central Authentication Service).
Tema gelap : menunjukkan cara membiarkan pengguna beralih antara tema terang dan tema gelap, dan menyimpan preferensi pengguna.
Anda dapat mencoba semua contoh secara online tanpa menginstal apa pun di komputer Anda menggunakan demo online SQLPage di replit.
SQLPage dapat dikonfigurasi melalui file konfigurasi yang ditempatkan di sqlpage/sqlpage.json
atau variabel lingkungan seperti DATABASE_URL
atau LISTEN_ON
.
Untuk informasi lebih lanjut, baca configuration.md
.
Selain itu, komponen khusus dapat dibuat dengan menempatkan file .handlebars
di sqlpage/templates
. Contoh.
SQLPage mendukung HTTP/2 dan HTTPS secara asli dan transparan. Cukup setel SQLPAGE_HTTPS_DOMAIN=example.com
, dan SQLPage akan secara otomatis meminta sertifikat tepercaya dan mulai mengenkripsi semua lalu lintas pengguna Anda dengannya. Tidak ada konfigurasi manual yang membosankan untuk Anda, dan tidak ada pesan "Koneksi Tidak Aman" yang mengganggu bagi pengguna Anda!
Anda dapat menjalankan SQLpage tanpa server dengan mengkompilasinya ke fungsi AWS Lambda. Cara mudah untuk melakukannya adalah dengan menggunakan gambar buruh pelabuhan yang disediakan:
buruh pelabuhan membangun -t sqlpage-lambda-builder . -f lambda.Dockerfile --pembuat target buruh pelabuhan menjalankan sqlpage-lambda-builder cat deploy.zip > sqlpage-aws-lambda.zip
Anda kemudian dapat menambahkan file SQL Anda sendiri ke sqlpage-aws-lambda.zip
, dan mengunggahnya ke AWS Lambda, memilih Runtime khusus di Amazon Linux 2 sebagai runtime.
Saat menjalankan tanpa server, Anda dapat menyertakan file SQL langsung di image yang Anda terapkan. Namun jika Anda ingin dapat memperbarui file sql Anda dengan cepat tanpa membuat image baru, Anda dapat menyimpan file langsung di dalam database, dalam tabel yang memiliki struktur berikut:
BUAT TABEL sqlpage_files( jalur VARCHAR(255) BUKAN KUNCI UTAMA NULL, isi gumpalan, last_modified TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
Pastikan untuk memperbarui last_modified
setiap kali Anda memperbarui konten file (atau melakukannya di dalam PEMICU). SQLPage akan mem-parsing ulang file dari database hanya jika sudah dimodifikasi.
actix web menangani permintaan HTTP dengan kecepatan luar biasa,
tabler menangani penataan untuk komponen bersih yang terlihat profesional,
ikon tabler adalah sekumpulan besar ikon yang dapat Anda pilih langsung dari SQL Anda,
setang merender halaman HTML dari templat yang dapat dibaca untuk setiap komponen.
Mengapa menggunakan SQL daripada bahasa pemrograman sebenarnya? SQL bahkan belum lengkap untuk Turing!
Anda fokus pada masalah yang salah. Jika Anda dapat mengekspresikan aplikasi Anda secara deklaratif, Anda harus melakukannya—baik menggunakan SQL atau bahasa lain. Kode deklaratif sering kali lebih ringkas, mudah dibaca, lebih mudah dipikirkan, dan lebih mudah di-debug dibandingkan kode imperatif.
SQL lebih sederhana dibandingkan bahasa tradisional, sering kali dapat dibaca oleh non-programmer, namun sangat kuat.
Jika kompleksitas adalah tujuan Anda, perhatikan bahwa SQL sebenarnya Turing-complete.
Bahkan tanpa kueri rekursif, rangkaian pernyataan SQL yang didorong oleh interaksi pengguna (seperti SQLPage) akan tetap lengkap dengan Turing, memungkinkan Anda membangun situs web bertenaga SQL yang berfungsi sebagai mesin Turing.
Hanya Karena Anda Bisa Bukan Berarti Anda Harus...
— seseorang bersikap jahat di Reddit
Ini bukan tentang "seharusnya" - ini tentang "mengapa tidak?" Teruslah mewarnai bagian dalam garis jika Anda mau, tapi kami akan bersenang-senang di sini dengan situs web SQL kami.
Apakah ini sama dengan Microsoft Access?
Tujuannya serupa – membuat aplikasi sederhana yang berpusat pada data – tetapi alatnya berbeda secara signifikan:
SQLPage adalah server web, bukan aplikasi desktop.
SQLPage terhubung ke database relasional kuat yang ada; Access mencoba menjadi database.
Akses itu mahal dan bersifat eksklusif; SQLPage adalah sumber terbuka.
SQLPage menghindarkan Anda dari siksaan Visual Basic for Applications.
Apakah nama tersebut merujuk ke Microsoft FrontPage?
FrontPage adalah pembuat situs web statis visual yang populer di akhir tahun 90an. Saya belum pernah mendengarnya sampai seseorang bertanya.
Saya suka CSS. Saya ingin mendesain situs web, bukan menulis SQL.
Jika Anda ingin menulis HTML dan CSS Anda sendiri, Anda dapat membuat komponen khusus dengan menambahkan file .handlebars
di sqlpage/templates
dan menulis HTML dan CSS Anda di sana. (Contoh). Anda juga dapat menggunakan komponen html
untuk menulis HTML mentah, atau komponen shell
untuk menyertakan skrip dan gaya khusus.
Namun SQLPage yakin Anda tidak perlu khawatir tentang jari-jari batas tombol sampai Anda memiliki prototipe yang berfungsi. Kami menyediakan komponen yang terlihat bagus sehingga Anda dapat fokus pada model data Anda, dan melakukan iterasi dengan cepat.
SQLPage tersedia untuk diunduh dari berbagai sumber:
Kami menyambut kontribusi! SQLPage dibangun dengan Rust dan menggunakan javascript vanilla untuk bagian frontendnya.
Lihat Panduan Berkontribusi kami untuk petunjuk terperinci tentang penyiapan pengembangan, pengujian, dan proses permintaan penarikan.