SQLpage เป็นตัวสร้างเว็บแอป SQL เท่านั้น มีไว้สำหรับนักวิทยาศาสตร์ข้อมูล นักวิเคราะห์ และทีมข่าวกรองธุรกิจเพื่อสร้างแอปพลิเคชันที่เน้นข้อมูลเป็นศูนย์กลางได้อย่างรวดเร็ว โดยไม่ต้องกังวลกับภาษาและแนวคิดการเขียนโปรแกรมเว็บแบบเดิมๆ ใดๆ
ด้วย SQLPage คุณจะเขียนไฟล์ .sql
ธรรมดาที่มีการสืบค้นไปยังฐานข้อมูลของคุณเพื่อเลือก จัดกลุ่ม อัปเดต แทรก และลบข้อมูลของคุณ และคุณจะได้หน้าเว็บที่ดูสะอาดตาซึ่งแสดงข้อมูลของคุณเป็นข้อความ รายการ กริด พล็อต และแบบฟอร์ม .
รหัส | ผลลัพธ์ |
เลือก 'รายการ' เป็นองค์ประกอบ 'เว็บไซต์ยอดนิยม' เป็นชื่อ เลือก ชื่อเป็นชื่อ, URL เป็นลิงก์ ประเภทเคส เมื่อ 1 แล้ว 'สีน้ำเงิน' อย่างอื่น 'สีแดง' สิ้นสุดเป็นสี คำอธิบาย, ไอคอน, เว็บไซต์ activeFROM; | |
เลือก 'แผนภูมิ' เป็นองค์ประกอบ 'รายได้รายไตรมาส' เป็นชื่อ 'พื้นที่' เป็นประเภท SELECT ไตรมาส AS x, SUM(รายได้) AS ปีจากการเงินกลุ่มตามไตรมาส | |
เลือก 'แบบฟอร์ม' เป็นส่วนประกอบ 'ผู้ใช้' เป็นชื่อ 'สร้างผู้ใช้ใหม่' เพื่อตรวจสอบความถูกต้อง เลือก ชื่อ, ประเภท, ตัวยึดตำแหน่ง, จำเป็น descriptionFROM user_form;INSERT INTO userSELECT $first_name, $last_name, $birth_dateWHERE $first_name IS NOT NULL; | |
เลือก 'แท็บ' เป็นส่วนประกอบ จริงเป็นศูนย์กลาง เลือก 'แสดงการ์ดทั้งหมด' เป็นชื่อ '?' เป็นลิงค์ $tab เป็นโมฆะว่าใช้งานอยู่ เลือก format('Show %s cards', color) เป็นชื่อ, format('?tab=%s', color) เป็นลิงก์ $tab=color ใช้งานอยู่จาก tab_example_cardsจัดกลุ่มตามสี; เลือก 'การ์ด' เป็นส่วนประกอบ เลือก ชื่อ คำอธิบาย สี image_url เป็น top_image, linkfrom tab_example_cards โดยที่ $tab เป็น null หรือ $tab = color;เลือก 'text' เป็นส่วนประกอบ, sqlpage.read_file_as_text('footer.md') เป็น contents_md |
SQLite รวมถึงความสามารถในการโหลดส่วนขยายเช่น Spatialite .
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 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 จากอิมเมจอย่างเป็นทางการไปยังอิมเมจของคุณเอง:
จาก debian:stable-slimCOPY --from=lovasoa/sqlpage:main /usr/local/bin/sqlpage /usr/local/bin/sqlpage
เราจัดเตรียมไบนารีที่คอมไพล์ไว้สำหรับสถาปัตยกรรม x86_64 เท่านั้น แต่จัดเตรียมอิมเมจนักเทียบท่าสำหรับสถาปัตยกรรมอื่นๆ รวมถึง arm64 และ armv7 หากคุณต้องการรัน SQLPage บน Raspberry Pi หรืออินสแตนซ์คลาวด์ ARM ที่ราคาถูกกว่า การใช้อิมเมจนักเทียบท่าเป็นวิธีที่ง่ายที่สุดในการดำเนินการ
อีกทางเลือกหนึ่งสำหรับผู้ใช้ Mac OS คือการใช้แพ็คเกจโฮมบรูว์ของ SQLPage
ติดตั้งโฮมบรูว์
ในเทอร์มินัล ให้รันคำสั่งต่อไปนี้:
brew install sqlpage
SQLPage เป็นเว็บเซิร์ฟเวอร์ที่เขียนด้วยสนิมและกระจายเป็นไฟล์ปฏิบัติการไฟล์เดียว เมื่อได้รับการร้องขอไปยัง URL ที่ลงท้ายด้วย .sql
มันจะค้นหาไฟล์ SQL ที่เกี่ยวข้อง รันบนฐานข้อมูล ส่งข้อมูลจากคำขอเว็บเป็นพารามิเตอร์คำสั่ง SQL เมื่อฐานข้อมูลเริ่มส่งคืนแถวสำหรับการสืบค้น SQLPage จะจับคู่ข้อมูลแต่ละส่วนในแถวกับพารามิเตอร์ในเทมเพลตของส่วนประกอบที่กำหนดไว้ล่วงหน้ารายการใดรายการหนึ่ง และสตรีมผลลัพธ์กลับไปยังเบราว์เซอร์ของผู้ใช้
รายการสิ่งที่ต้องทำ: แอปพลิเคชันรายการสิ่งที่ต้องทำอย่างง่าย ซึ่งแสดงวิธีสร้างแอปพลิเคชัน CRUD พื้นฐานด้วย SQLPage
พล็อต ตาราง แบบฟอร์ม และการโต้ตอบ: การสาธิตสั้นๆ ที่มีความคิดเห็นดีซึ่งแสดงวิธีใช้พล็อต ตาราง แบบฟอร์ม และการโต้ตอบเพื่อกรองข้อมูลตามพารามิเตอร์ URL
โคลนแยกส่วนเล็ก ๆ : แอพติดตามค่าใช้จ่ายที่ใช้ร่วมกัน
Corporate Conundrum: เกมกระดานที่ใช้ใน SQL
แบบฟอร์มรายละเอียดหลัก: แสดงวิธีการใช้ชุดรูปแบบง่ายๆ เพื่อแทรกข้อมูลลงในตารางฐานข้อมูลที่มีความสัมพันธ์แบบหนึ่งต่อกลุ่ม
เว็บไซต์และเอกสารอย่างเป็นทางการของ SQLPage: ซอร์สโค้ด SQL สำหรับเว็บไซต์อย่างเป็นทางการของโครงการ https://sql.datapage.app
แกลเลอรี่ภาพ: แกลเลอรี่ภาพที่ผู้ใช้สามารถเข้าสู่ระบบและอัพโหลดภาพ แสดงให้เห็นการใช้งานระบบการตรวจสอบสิทธิ์ผู้ใช้โดยใช้คุกกี้เซสชัน และการจัดการการอัพโหลดไฟล์
การจัดการผู้ใช้: การสาธิตการตรวจสอบสิทธิ์พร้อมการลงทะเบียนผู้ใช้ เข้าสู่ระบบ ออกจากระบบ และเพจที่เป็นความลับ ใช้ PostgreSQL
การสร้าง JSON API และการรวมส่วนประกอบ React ในส่วนหน้า: แสดงวิธีรวมส่วนประกอบการตอบสนองในเว็บไซต์ SQLPage และวิธีสร้าง REST API ด้วย SQLPage ได้อย่างง่ายดาย
การจัดการการอัพโหลดไฟล์: แกลเลอรี่ภาพที่ผู้ใช้ที่ได้รับการรับรองความถูกต้องสามารถเผยแพร่ภาพใหม่ผ่านแบบฟอร์มการอัพโหลด
การนำเข้าข้อมูลจำนวนมากจากไฟล์ CSV : รูปแบบง่ายๆ ที่อนุญาตให้ผู้ใช้นำเข้าไฟล์ CSV เพื่อเติมตารางฐานข้อมูล
ตัวอย่างการรับรองความถูกต้องขั้นสูงโดยใช้ขั้นตอนการจัดเก็บ PostgreSQL
เว็บแอปพลิเคชันที่ซับซ้อนใน SQLite พร้อมการจัดการผู้ใช้ การอัพโหลดไฟล์ แปลง แผนที่ ตาราง เมนู ...
การลงชื่อเข้าระบบครั้งเดียว: ตัวอย่างวิธีใช้การตรวจสอบสิทธิ์ OAuth และ OpenID Connect (OIDC) ใน SQLPage การสาธิตนี้ยังรวมถึงไคลเอนต์ CAS (Central Authentication Service) อีกด้วย
ธีมสีเข้ม : สาธิตวิธีให้ผู้ใช้สลับระหว่างธีมสีอ่อนและธีมสีเข้ม และจัดเก็บการตั้งค่าของผู้ใช้
คุณสามารถลองตัวอย่างทั้งหมดทางออนไลน์โดยไม่ต้องติดตั้งอะไรลงในคอมพิวเตอร์ของคุณโดยใช้การสาธิตออนไลน์ของ SQLPage ในการจำลอง
SQLPage สามารถกำหนดค่าผ่านไฟล์กำหนดค่าที่อยู่ใน sqlpage/sqlpage.json
หรือตัวแปรสภาพแวดล้อม เช่น DATABASE_URL
หรือ LISTEN_ON
สำหรับข้อมูลเพิ่มเติม โปรดอ่าน configuration.md
นอกจากนี้ คุณสามารถสร้างส่วนประกอบแบบกำหนดเองได้โดยการวางไฟล์ .handlebars
ใน sqlpage/templates
ตัวอย่าง.
SQLPage รองรับ HTTP/2 และ HTTPS อย่างเป็นธรรมชาติและโปร่งใส เพียงตั้งค่า SQLPAGE_HTTPS_DOMAIN=example.com
แล้ว SQLPage จะขอใบรับรองที่เชื่อถือได้โดยอัตโนมัติ และเริ่มเข้ารหัสการรับส่งข้อมูลของผู้ใช้ทั้งหมดด้วยใบรับรองนั้น ไม่มีการกำหนดค่าด้วยตนเองที่น่าเบื่อสำหรับคุณ และไม่มีข้อความ "การเชื่อมต่อไม่ปลอดภัย" ที่น่ารำคาญสำหรับผู้ใช้ของคุณ !
คุณสามารถรัน SQLpage แบบไร้เซิร์ฟเวอร์ได้โดยการคอมไพล์ไปยังฟังก์ชัน AWS Lambda วิธีง่ายๆ ในการดำเนินการคือการใช้อิมเมจนักเทียบท่าที่ให้มา:
นักเทียบท่า build -t sqlpage-lambda-builder -f lambda.Dockerfile --ตัวสร้างเป้าหมาย นักเทียบท่ารัน sqlpage-lambda-builder catปรับใช้.zip > sqlpage-aws-lambda.zip
จากนั้นคุณสามารถเพิ่มไฟล์ SQL ของคุณเองลงใน sqlpage-aws-lambda.zip
แล้วอัปโหลดไปยัง AWS Lambda โดยเลือก รันไทม์แบบกำหนดเองบน Amazon Linux 2 เป็นรันไทม์
เมื่อใช้งานแบบไร้เซิร์ฟเวอร์ คุณสามารถรวมไฟล์ SQL ลงในอิมเมจที่คุณกำลังปรับใช้ได้โดยตรง แต่หากคุณต้องการอัปเดตไฟล์ sql ได้ทันทีโดยไม่ต้องสร้างอิมเมจใหม่ คุณสามารถจัดเก็บไฟล์ไว้ภายในฐานข้อมูลได้โดยตรงในตารางที่มีโครงสร้างดังต่อไปนี้:
สร้างตาราง sqlpage_files (เส้นทาง VARCHAR (255) ไม่ใช่คีย์หลักที่เป็นโมฆะ เนื้อหา BLOB, Last_modified TIMESTAMP ค่าเริ่มต้น CURRENT_TIMESTAMP);
ตรวจสอบให้แน่ใจว่าได้อัปเดต last_modified
ทุกครั้งที่คุณอัปเดตเนื้อหาของไฟล์ (หรือทำใน TRIGGER) SQLPage จะแยกวิเคราะห์ไฟล์จากฐานข้อมูลอีกครั้งเมื่อมีการแก้ไขเท่านั้น
actix web จัดการคำขอ HTTP ด้วยความเร็วที่เหลือเชื่อ
tabler จัดการสไตล์สำหรับส่วนประกอบที่สะอาดตาอย่างมืออาชีพ
ไอคอน tabler เป็นชุดไอคอนขนาดใหญ่ที่คุณสามารถเลือกได้โดยตรงจาก SQL ของคุณ
แฮนด์บาร์เรนเดอร์หน้า HTML จากเทมเพลตที่อ่านได้สำหรับแต่ละองค์ประกอบ
เหตุใดจึงใช้ SQL แทนภาษาโปรแกรมจริง SQL ยังไม่สมบูรณ์ทัวริงด้วยซ้ำ!
คุณกำลังมุ่งความสนใจไปที่ประเด็นที่ผิด หากคุณสามารถแสดงแอปพลิเคชันของคุณอย่างชัดเจนได้ คุณก็ควรทำ ไม่ว่าจะใช้ SQL หรือภาษาอื่นก็ตาม รหัสที่ประกาศมักจะกระชับ อ่านง่าย ให้เหตุผลง่ายกว่า และแก้ไขจุดบกพร่องได้ง่ายกว่ารหัสที่จำเป็น
SQL นั้นง่ายกว่าภาษาทั่วไป ซึ่งผู้ที่ไม่ใช่โปรแกรมเมอร์มักจะอ่านได้ แต่ทรงพลังมาก
หากเป้าหมายของคุณคือความซับซ้อน โปรดทราบว่าจริงๆ แล้ว SQL นั้นเสร็จสมบูรณ์แล้วในทัวริง
แม้ว่าไม่มีการสืบค้นแบบเรียกซ้ำ ลำดับของคำสั่ง SQL ที่ขับเคลื่อนโดยการโต้ตอบของผู้ใช้ (เช่น SQLPage) จะยังคงเป็นแบบทัวริงที่สมบูรณ์ ทำให้คุณสามารถสร้างเว็บไซต์ที่ขับเคลื่อนด้วย SQL ซึ่งทำหน้าที่เป็นเครื่องจักรทัวริงได้
เพียงเพราะคุณทำไม่ได้ไม่ได้หมายความว่าคุณควร...
— มีคนใจร้ายใน Reddit
มันไม่เกี่ยวกับ "ควร" — มันเกี่ยวกับ "ทำไมจะไม่ได้" ระบายสีในบรรทัดต่อไปถ้าคุณต้องการ แต่เราจะมาที่นี่เพื่อสนุกสนานกับเว็บไซต์ SQL ของเรา
สิ่งนี้เหมือนกับ Microsoft Access หรือไม่
เป้าหมายมีความคล้ายคลึงกัน นั่นคือการสร้างแอปพลิเคชันที่เน้นข้อมูลเป็นศูนย์กลาง แต่เครื่องมือมีความแตกต่างกันอย่างมาก:
SQLPage เป็นเว็บเซิร์ฟเวอร์ ไม่ใช่แอปเดสก์ท็อป
SQLPage เชื่อมต่อกับฐานข้อมูลเชิงสัมพันธ์ที่แข็งแกร่งที่มีอยู่ Access พยายามที่จะ เป็น ฐานข้อมูล
การเข้าถึงมีราคาแพงและเป็นกรรมสิทธิ์ SQLPage เป็นโอเพ่นซอร์ส
SQLPage ช่วยให้คุณไม่ต้องทรมานกับ Visual Basic for Applications
ชื่อนี้อ้างอิงถึง Microsoft FrontPage หรือไม่
FrontPage เป็นเครื่องมือสร้างเว็บไซต์แบบวิชวลสแตติกที่ได้รับความนิยมในช่วงปลายทศวรรษ 90 ฉันไม่เคยได้ยินเรื่องนี้จนกระทั่งมีคนถาม
ฉันชอบซีเอสเอส ฉันต้องการออกแบบเว็บไซต์ ไม่ใช่เขียน SQL
หากคุณต้องการเขียน HTML และ CSS ของคุณเอง คุณสามารถสร้างส่วนประกอบที่กำหนดเองได้โดยเพิ่มไฟล์ .handlebars
ใน sqlpage/templates
แล้วเขียน HTML และ CSS ของคุณที่นั่น (ตัวอย่าง). คุณยังสามารถใช้คอมโพเนนต์ html
เพื่อเขียน Raw HTML หรือใช้คอมโพเนนต์ shell
เพื่อรวมสคริปต์และสไตล์ที่กำหนดเองได้
แต่ SQLPage เชื่อว่าคุณไม่ควรกังวลเกี่ยวกับรัศมีเส้นขอบของปุ่มจนกว่าคุณจะมีต้นแบบที่ใช้งานได้ เราจัดเตรียมส่วนประกอบที่ดูดีตั้งแต่แกะกล่อง เพื่อให้คุณสามารถมุ่งเน้นไปที่โมเดลข้อมูลของคุณและทำซ้ำได้อย่างรวดเร็ว
SQLPage พร้อมให้ดาวน์โหลดจากหลายแหล่ง:
เรายินดีต้อนรับการมีส่วนร่วม! SQLPage สร้างขึ้นด้วย Rust และใช้ vanilla javascript สำหรับส่วนหน้า
ดูคู่มือการสนับสนุนของเราสำหรับคำแนะนำโดยละเอียดเกี่ยวกับการตั้งค่าการพัฒนา การทดสอบ และกระบวนการดึงคำขอ