SQLpage هو منشئ تطبيقات ويب SQL فقط. إنه مخصص لعلماء البيانات والمحللين وفرق ذكاء الأعمال لبناء تطبيقات قوية تركز على البيانات بسرعة، دون القلق بشأن أي من لغات ومفاهيم برمجة الويب التقليدية.
باستخدام SQLPage، يمكنك كتابة ملفات .sql
بسيطة تحتوي على استعلامات إلى قاعدة البيانات الخاصة بك لتحديد بياناتك وتجميعها وتحديثها وإدراجها وحذفها، وستحصل على صفحات ويب نظيفة جيدة المظهر تعرض بياناتك كنص وقوائم وشبكات ومؤامرات ونماذج .
شفرة | نتيجة |
يختار "قائمة" كمكون، "مواقع الويب الشهيرة" كعنوان؛ SELECT الاسم كعنوان، عنوان URL كرابط، نوع الحالة عندما 1 ثم "الأزرق" آخر "أحمر" النهاية كاللون، الوصف، الرمز، موقع activeFROM؛ | |
حدد "المخطط" كمكون، و"الإيرادات ربع السنوية" كعنوان، و"المنطقة" كنوع؛ حدد ربع AS x، SUM(revenue) AS yمن الشؤون الماليةالمجموعة حسب الربع | |
حدد "النموذج" كمكون، و"المستخدم" كعنوان، و"إنشاء مستخدم جديد" للتحقق من الصحة؛ SELECT الاسم، النوع، العنصر النائب، مطلوب، descriptionFROM user_form؛ INSERT INTO userSELECT $first_name، $last_name، $birth_dateWHERE $first_name IS NOT NULL؛ | |
حدد "علامة التبويب" كمكون، وصحيح كمركز؛ حدد "إظهار كافة البطاقات" كعنوان، '؟" كرابط، علامة التبويب $ فارغة باعتبارها نشطة؛ حدد التنسيق ("إظهار بطاقات %s"، اللون) كعنوان، التنسيق('?tab=%s', اللون) كرابط، $tab=color as activefrom tab_example_cardsgroup حسب اللون؛ حدد "البطاقة" كمكون؛ حدد العنوان والوصف واللون image_url كـ top_image، رابط من tab_example_cards حيث يكون $tab خاليًا أو $tab = color؛ حدد 'text' كمكون، sqlpage.read_file_as_text('footer.md') كـ content_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 والمكونات المخصصة وعمليات الترحيل (راجع التكوين.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.
استنساخ صغير منقسم: تطبيق مشترك لتعقب النفقات
لغز الشركات: لعبة لوحية يتم تنفيذها في SQL
النماذج التفصيلية الرئيسية: توضح كيفية تنفيذ مجموعة بسيطة من النماذج لإدراج البيانات في جداول قاعدة البيانات التي لها علاقة رأس بأطراف.
الموقع الرسمي والوثائق الخاصة بـ SQLPage: كود مصدر SQL للموقع الرسمي للمشروع، https://sql.datapage.app
معرض الصور: معرض صور حيث يمكن للمستخدمين تسجيل الدخول وتحميل الصور. يوضح تنفيذ نظام مصادقة المستخدم باستخدام ملفات تعريف الارتباط للجلسة، ومعالجة تحميلات الملفات.
إدارة المستخدم: عرض تجريبي للمصادقة مع تسجيل المستخدم وتسجيل الدخول وتسجيل الخروج والصفحات السرية. يستخدم PostgreSQL.
إنشاء واجهة برمجة تطبيقات JSON ودمج مكونات React في الواجهة الأمامية: يوضح كيفية دمج مكون رد فعل في موقع ويب SQLPage، وكيفية إنشاء REST API بسهولة باستخدام SQLPage.
التعامل مع تحميلات الملفات: معرض صور حيث يمكن للمستخدمين المعتمدين نشر صور جديدة عبر نموذج تحميل.
استيراد البيانات المجمعة من ملفات CSV: نموذج بسيط يتيح للمستخدمين استيراد ملفات CSV لملء جدول قاعدة البيانات.
مثال على المصادقة المتقدمة باستخدام إجراءات PostgreSQL المخزنة
تطبيق ويب معقد في SQLite مع إدارة المستخدم، وتحميل الملفات، والمؤامرات، والخرائط، والجداول، والقوائم، ...
تسجيل الدخول الموحد: مثال على كيفية تنفيذ مصادقة OAuth وOpenID Connect (OIDC) في SQLPage. يتضمن العرض التوضيحي أيضًا عميل CAS (خدمة المصادقة المركزية).
المظهر الداكن: يوضح كيفية السماح للمستخدم بالتبديل بين المظهر الفاتح والموضوع الداكن، وتخزين تفضيلات المستخدم.
يمكنك تجربة جميع الأمثلة عبر الإنترنت دون تثبيت أي شيء على جهاز الكمبيوتر الخاص بك باستخدام العرض التوضيحي عبر الإنترنت الخاص بـ SQLPage على Replit.
يمكن تكوين SQLPage إما من خلال ملف التكوين الموجود في sqlpage/sqlpage.json
أو من خلال متغيرات البيئة مثل DATABASE_URL
أو LISTEN_ON
.
لمزيد من المعلومات، اقرأ configuration.md
.md .
بالإضافة إلى ذلك، يمكن إنشاء مكونات مخصصة عن طريق وضع ملفات .handlebars
في sqlpage/templates
. مثال.
يدعم SQLPage HTTP/2 وHTTPS بشكل أصلي وشفاف. ما عليك سوى تعيين SQLPAGE_HTTPS_DOMAIN=example.com
، وسيطلب SQLPage تلقائيًا شهادة موثوقة ويبدأ في تشفير كل حركة مرور المستخدم الخاصة بك باستخدامها. لا يوجد تكوين يدوي ممل لك، ولا توجد رسائل مزعجة "الاتصال غير آمن" للمستخدمين!
يمكنك تشغيل SQLpage بدون خادم عن طريق تجميعه إلى وظيفة AWS Lambda. إحدى الطرق السهلة للقيام بذلك هي استخدام صورة عامل الإرساء المتوفرة:
بناء عامل ميناء -t sqlpage-lambda-builder . -f lambda.Dockerfile --target builder تشغيل عامل ميناء sqlpage-lambda-builder cat Publish.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 DEFAULT CURRENT_TIMESTAMP)؛
تأكد من تحديث last_modified
في كل مرة تقوم فيها بتحديث محتويات الملف (أو قم بذلك داخل TRIGGER). سيقوم SQLPage بإعادة تحليل ملف من قاعدة البيانات فقط عندما يتم تعديله.
يتعامل actix web مع طلبات HTTP بسرعة مذهلة،
يتولى Tabler التصميم للحصول على مكونات نظيفة ذات مظهر احترافي،
أيقونات الجدول هي مجموعة كبيرة من الأيقونات التي يمكنك تحديدها مباشرة من SQL الخاص بك،
تعرض أشرطة المقاود صفحات HTML من قوالب قابلة للقراءة لكل مكون.
لماذا نستخدم SQL بدلاً من لغة البرمجة الحقيقية؟ SQL ليست حتى تورينج كاملة!
أنت تركز على القضية الخاطئة. إذا كان بإمكانك التعبير عن تطبيقك بشكل تصريحي، فيجب عليك ذلك، سواء باستخدام SQL أو لغة أخرى. غالبًا ما تكون التعليمات البرمجية التعريفية أكثر إيجازًا وقابلية للقراءة وأسهل في التفكير وتصحيح الأخطاء من التعليمات البرمجية الحتمية.
SQL هي أبسط من اللغات التقليدية، وغالبًا ما تكون قابلة للقراءة من قبل غير المبرمجين، ولكنها قوية جدًا.
إذا كان التعقيد هو هدفك، فلاحظ أن SQL هي في الواقع مكتملة من خلال تورينج.
حتى بدون الاستعلامات المتكررة، فإن سلسلة من عبارات SQL المدفوعة بتفاعلات المستخدم (مثل SQLPage) ستظل مكتملة باستخدام تورينج، مما يتيح لك إنشاء موقع ويب يعمل بنظام SQL ويعمل كآلة تورينج.
فقط لأنك تستطيع لا يعني أنك يجب أن...
- شخص ما لئيم على رديت
الأمر لا يتعلق بـ "ينبغي" - بل يتعلق بـ "لماذا لا؟" استمر في التلوين داخل الخطوط إذا كنت تريد ذلك، لكننا سنستمتع هنا بمواقع SQL الخاصة بنا.
هل هذا هو نفس برنامج Microsoft Access؟
الأهداف متشابهة - إنشاء تطبيقات بسيطة تركز على البيانات - ولكن الأدوات تختلف بشكل كبير:
SQLPage هو خادم ويب، وليس تطبيق سطح مكتب.
يتصل SQLPage بقواعد البيانات العلائقية القوية الموجودة؛ يحاول Access أن يكون قاعدة بيانات.
الوصول مكلف ومملوك؛ SQLPage مفتوح المصدر.
SQLPage يريحك من عذاب Visual Basic for Applications.
هل الاسم مرجع إلى Microsoft FrontPage؟
كان FrontPage منشئ مواقع الويب الثابتة والمرئية شائعًا في أواخر التسعينيات. ولم أسمع به حتى سألني أحدهم.
أنا أحب CSS. أريد تصميم مواقع ويب، وليس كتابة SQL.
إذا كنت تريد كتابة HTML وCSS خاصين بك، فيمكنك إنشاء مكونات مخصصة عن طريق إضافة ملف .handlebars
في sqlpage/templates
وكتابة HTML وCSS هناك. (مثال). يمكنك أيضًا استخدام مكون html
لكتابة HTML أولي، أو مكون shell
لتضمين نصوص وأنماط مخصصة.
لكن SQLPage تعتقد أنه لا داعي للقلق بشأن نصف قطر حدود الزر حتى يكون لديك نموذج أولي فعال. نحن نقدم مكونات جيدة المظهر جاهزة للاستخدام حتى تتمكن من التركيز على نموذج البيانات الخاص بك وتكراره بسرعة.
SQLPage متاح للتنزيل من مصادر متعددة:
نحن نرحب بالمساهمات! تم إنشاء SQLPage باستخدام Rust ويستخدم JavaScript الفانيليا لأجزاء الواجهة الأمامية.
راجع دليل المساهمة الخاص بنا للحصول على إرشادات مفصلة حول إعداد التطوير والاختبار وعملية طلب السحب.