# Dash على Spaces

باستخدام Dash Open Source، يمكنك إنشاء تطبيقات بيانات على حاسوبك المحمول بلغة بايثون الخالصة، دون الحاجة إلى جافاسكربت.

تعرّف على Dash من خلال بناء [تطبيق تجريبي](https://dash.plotly.com/tutorial) باستخدام المصادر المفتوحة. ثم توسّع نطاق عملك باستخدام [Dash Enterprise](https://plotly.com/dash/) عندما يصبح تطبيق Dash جاهزًا للاستخدام على مستوى القسم أو الشركة بأكملها. أو، ابدأ مبادرتك باستخدام Dash Enterprise منذ البداية لتحرير مكاسب إنتاجية للمطورين والحصول على تسريع عملي من فريق Plotly.

## نشر Dash على Spaces

لبدء استخدام Dash على Spaces، انقر على الزر أدناه:

    

سيبدأ هذا في بناء مساحة (Space) الخاصة بك باستخدام قالب Docker الخاص بـ Dash من Plotly. إذا نجح الأمر، فيجب أن ترى تطبيقًا مشابهًا لتطبيق [قالب Dash](https://huggingface.co/spaces/dash/dash-app-template).

## تخصيص تطبيق Dash الخاص بك

إذا لم تكن قد سبق لك أن بنيت باستخدام Dash، فننصحك بالبدء مع [دليل Dash في 20 دقيقة](https://dash.plotly.com/tutorial).

عند إنشاء مساحة Dash، ستحصل على بعض الملفات الأساسية لمساعدتك على البدء:

### 1. app.py

هذا هو ملف التطبيق الرئيسي الذي يحدد المنطق الأساسي لمشروعك. غالبًا ما تُبنى تطبيقات Dash على شكل وحدات، ويمكنك اختيار فصل التخطيط (layout) والاستدعاءات (callbacks) والبيانات في ملفات أخرى، مثل `layout.py`، وما إلى ذلك.

ستجد داخل `app.py` ما يلي:

1. `from dash import Dash, html` نستورد كائن `Dash` لتعريف تطبيقنا، ومكتبة `html` التي تمنحنا عناصر بناء لتجميع مشروعنا.

2. `app = Dash()` هنا، نعرّف تطبيقنا. يتم _ربط_ التخطيط والخادم والدوال الاستدعائية (callbacks) بكائن `app`.

3. `server = app.server` هنا، نعرّف متغير الخادم الخاص بنا، والذي يُستخدم لتشغيل التطبيق في بيئة الإنتاج.

4. `app.layout = `يُعرَّف تخطيط التطبيق الأولي على أنه قائمة من مكوّنات Dash، أو مكوّن Dash فردي، أو دالة تُرجع أيًّا منهما.

   يُعدّ `app.layout` التخطيط الأولي الذي سيُحدَّث كتطبيق صفحة واحدة عبر الاستدعاءات المنطقية الأخرى في مشروعك.

5. `if __name__ == '__main__': app.run(debug=True)` إذا كنت تشغّل مشروعك محليًا باستخدام `python app.py`، فسيتم تنفيذ `app.run(...)` وإطلاق خادم تطوير للعمل على مشروعك، مع ميزات تشمل إعادة التحميل الفوري، ومخطط الاستدعاءات، والمزيد.

   في بيئة الإنتاج، نوصي باستخدام `gunicorn`، وهو خادم بمستوى الإنتاج. لن يتم تفعيل ميزات التصحيح عند تشغيل مشروعك باستخدام `gunicorn`، لذا لن يتم الوصول إلى هذا السطر أبدًا.

### 2. ملف Dockerfile

ملف Dockerfile لتطبيق Dash بسيط لأن لدى Dash عددًا قليلًا من الاعتماديات على النظام. المتطلبات الأساسية هي:

- يقوم بتثبيت التبعيات المدرجة في `requirements.txt` (باستخدام `uv`)
- إنشاء مستخدم غير جذري من أجل الأمان
- يُشغّل التطبيق باستخدام `gunicorn` عبر الأمر `gunicorn app:server --workers 4`

قد تحتاج إلى تعديل هذا الملف إذا كانت تطبيقك يتطلب اعتماديات نظام إضافية، أو أذونات، أو أعلام سطر أوامر أخرى.

### 3. requirements.txt

سيتم تثبيت الاعتماديات المدرجة في ملف `requirements.txt` تلقائيًا. على الأقل، يجب أن تتضمن هذا الملف `dash` و`gunicorn`. وستحتاج إلى إضافة أي حزم أخرى مطلوبة يحتاجها تطبيقك.

توفر قالب Dash Space إعدادًا أساسيًا يمكنك توسيعه بناءً على احتياجاتك.

## موارد ودعم إضافية

- [توثيق Dash](https://dash.plotly.com)
- [مستودع Dash على GitHub](https://github.com/plotly/dash)
- [منتديات مجتمع Dash](https://community.plotly.com)
- [Dash Enterprise](https://plotly.com/dash)
- [قالب مساحة Dash](https://huggingface.co/spaces/plotly/dash-app-template)

## استكشاف الأخطاء وإصلاحها

إذا واجهت مشاكل:

1. تأكد من أن دفتر الملاحظات يعمل محليًا في وضع التطبيق باستخدام `python app.py`
2. تحقق من أن جميع الحزم المطلوبة مدرجة في `requirements.txt`
3. تحقق من تطابق إعداد المنفذ (7860 هو الافتراضي لـ Spaces)
4. تحقق من سجلات Space بحثاً عن أي أخطاء في Python

لمزيد من المساعدة، قم بزيارة [منتديات مجتمع Plotly](https://community.plotly.com) أو [افتح مشكلة](https://github.com/plotly/dash/issues).

