اذهب إلى المحتوى

لوحة المتصدرين

  1. Hiba Abdalrheem

    Hiba Abdalrheem

    الأعضاء


    • نقاط

      3

    • المساهمات

      21


  2. إياد الإسماعيل

    • نقاط

      2

    • المساهمات

      595


  3. Sherif Aboghazala

    Sherif Aboghazala

    الأعضاء


    • نقاط

      2

    • المساهمات

      62


  4. محمد عاطف25

    محمد عاطف25

    الأعضاء


    • نقاط

      2

    • المساهمات

      9829


المحتوى الأكثر حصولًا على سمعة جيدة

المحتوى الأعلى تقييمًا في 12/13/25 في كل الموقع

  1. السلام عليكم ورحمة الله وبركاته صباح الخير عند كتابة الأمر wsl --install يظهر الشكل [ % 0.0 ] ولايتحرك التحميل؟
    2 نقاط
  2. السلام عليكم ده الكود # Remember to inherit from the correct class class EarlyStoppingCallback(tf.keras.callbacks.Callback): # Define the correct function signature for on_epoch_end method def on_epoch_end(self,epoch,logs=None): # Check if the accuracy is greater or equal to 0.98 if logs['accuracy'] >= 0.98: # Stop training once the above condition is met self.model.stop_training = True print("\nReached 98% accuracy so cancelling training!")
    1 نقطة
  3. كيف اسمح للAPI فقط للحصول على المعلومات او ارسال المعلومات, و منع المستخدم من الدخول بالمتصفح فقط يستطيع ارسال او استقبال البيانات من API الخاص بالموقع؟
    1 نقطة
  4. "مرحباً فريق أكاديمة حسوب، أنا بدرس حالياً دورة تطوير التطبيقات باستخدام لغة Python. أنا أبغى أضغط على نفسي وأخلص الأربع مسارات الأولى بسرعة قياسية عشان أقدم على الشهادة والعمل. أنا عندي خلفية كويسة جداً: عندي شهادة علوم حاسوب وخبرة سابقة في أسياسيات بايثون بس من فترة طويلة جدا. السؤال هو: أنا ناوي أدرس وأطبق بشكل مكثف بمعدل 40 ساعة في الأسبوع. كم أسبوع بالضبط تتوقعون أحتاج عشان أخلص الأربع مسارات الأساسية (أسيات بايثون الى تطوير متجر إلكتروني بإطار عمل جانغو) وأكون جاهز للشهادة، أنا أسأل عن مدة محددة عشان أطبق قانون (Parkinson's Law) وألتزم بوقت معين وما أطول أكثر من اللازم. شكراً جزيلاً!"
    1 نقطة
  5. السلام عليكم ورحمة الله وبركاته صباح الخير شكرا جزيلا كثيرا لكم... فتح wsl هل توجد واجهة رسومية للتعامل معه ام انه مثل cmd ؟
    1 نقطة
  6. السلام عليكم ورحمة الله قمت ببناء تطبيق طبيبي من مسار JS باستخدام TRAE AI اريد مراجعتكم بارك الله فيكم الرابط : طبيبي
    1 نقطة
  7. وعليكم السلام ورحمة الله وبركاته. جيد الكود نظيف ومنظم بشكل جيد وأيضا هيكل الملفات والمجلدات جيد ومناسب . أنصحك بإنشاء أولا المشروع بنفسك إذا لم تقم بإنشاءه وبعد ذلك يمكنك مقارنة المشروع الذي تم إنشاءه من قبل الذكاء الإصطناعي وهذا الأمر سيعلمك كثيرا وسيعطيك خبرة جيدة وستعرف أى جزء من الأكواد لديك به مشكلة أو تم تحسينه في نسخة ال AI .
    1 نقطة
  8. لا يمكنك منع المتصفح 100% وجعل الوصول حصريًا لل API فقط وهذا بسبب أن: أي متصفح يستطيع إرسال Requests مثل أي API Client. Postman و fetch و axios و curl هي كلها HTTP Requests في النهاية يتم إرسالها . ولكنك تستطيع التحكم بمن يُسمح له باستخدام ال API وتمنع الاستخدام العشوائي أو غير المصرح به. ويمكنك إستخدام المصادقة لفعل هذا الأمر فيجب أن يتم إرسال token وتقوم بالتحقق به وإم بالسماح أو رفض الطلب . وأشهر الطرق هي : JWT Token. OAuth2. API Key. أو يمكنك إستخدام ال cors وهو السماح فقط بالطلبات من مواقع معينة . فمثلا لو تم إرسال الطلب من موقع x مثلا وأنت لم تسمح بالموقع x بهذا الأمر لن يتم إستقبال الطلب وسيتم إعادة خطأ cors .
    1 نقطة
  9. هل التاريخ دا معناه شراء الدورات تاريخ 23 في شهر 5 عام 2025 لأني نسيت
    1 نقطة
  10. خالد، شاب فلسطيني من غزة، تخرج عام 2023 من كلية تكنولوجيا المعلومات تخصص نظم ومعلومات إدارية. رغم الظروف الصعبة التي تحيط به، لم يكن ممن ينتظرون تحسن الأوضاع، بل قرر أن يصنع طريقه بنفسه. ورغم خلفيته الأكاديمية، لم يكن خالد متحمس لفكرة الدورات المدفوعة. فقد جرب الكثير من الدورات المجانية من قبل، لكنه وجد نفسه يتنقل بين محتوى غير منظم، بلا خطة واضحة أو مسار تدريبي فعلي يمكنه من تطوير نفسه. كان يسمع باستمرار من أحد زملائه في الجامعة عن أكاديمية حسوب، لكن التردد ظل يرافقه لبعض الوقت، خاصة بسبب كلفة الدورة. لكن مع مرور الوقت، ومع اشتداد الظروف في غزة، بدأ يعيد حساباته. لم يعد يرى الوقت موردًا يمكن هدره، بل فرصة لا تعوض. قرر أن يستثمر ما تبقى من طاقته في شيء حقيقي يقوده إلى سوق العمل وكانت البداية. اتخاذ القرار: لماذا التحق بأكاديمية حسوب؟ في ظل غياب الاستقرار، أصبح السوق يطلب أكثر من مجرد شهادة جامعية أو معرفة سطحية. وشعر خالد أن ما لديه من مهارات بسيطة لم يعد كافي لدخول سوق العمل بثقة، خاصة مع ازدياد المنافسة وارتفاع تكلفة الحياة. كان يعرف تمامًا أن الاعتماد على المسارات المجانية لن يوصله إلى المستوى الذي يطمح له. أراد أن ينتقل من مرحلة التجربة إلى مرحلة الاحتراف. وبعد تفكير، اختار الانضمام إلى أكاديمية حسوب، باحثًا عن تجربة مختلفة تأخذ بيده نحو بناء مهارات فعلية تواكب متطلبات العمل. ومنذ اللحظة الأولى، بدأ يرى الفارق بين ما كان يتعلمه سابقًا، وما تقدمه الأكاديمية من توجيه مباشر، ومحتوى منظم، ودعم لا يتوقف. التحديات والنمو: كيف كانت التجربة؟ منذ اليوم الأول، لاحظ الفرق في المحتوى والتنظيم والتوجيه المستمر من المدربين. لكنه واجه تحديات قاسية منها انقطاع الإنترنت والكهرباء، صعوبة تحميل الدروس أو حتى المتابعة أحيانًا. ورغم ذلك لم يتوقف. لمس تطور بمهاراته بشكل واضح في التعامل مع الملفات، استخدام أدوات مثل Web Scraping، كتابة كود نظيف ومنظم، وفهم أسس حل المشكلات. وهي نقاط لم يجدها بهذا الوضوح في أي دورة عربية سابقة. مشروع التخرج: الذروة العملية مشروع التخرج كان تطبيقًا حقيقيًا لمهاراته وكان عبارة عن متجر إلكتروني لبيع الدورات البرمجية. يتيح للمستخدمين تصفح الدورة ومشاهدة المسار الأول مجانًا، بينما تبقى بقية المسارات مغلقة حتى الدفع. استخدم فيه تقنيات JavaScript، HTML، CSS، وBootstrap للواجهة الأمامية و Python، Django للواجهة الخلفية، مع دعم ثنائي اللغة. بعد البرنامج: الإنجاز والتطلعات قبل نهاية الدورة، حصل على فرصة عمل مع شركة كندية كدعم فني بلغة بايثون، بأجور تتراوح بين 50 و100 دولار للساعة. كما نفذ مشروعين بنجاح، موقع لشركة قطرية، وآخر لشركة محلية في غزة لبيع اشتراكات برمجية. أيضًا بدأ ببناء ملفه المهني على منصات العمل الحر كخمسات ومستقل، وبدأ بالتقديم على وظائف. بعض الشركات اعتذرت بسبب الوضع اللوجستي في غزة، لكنه يرى أن الطريق بدأ ولن يتوقف وهدفه اليوم أن يعمل كمهندس برمجيات بدخل شهري ثابت. الرسالة الختامية لمن يفكر في دخول المجال أو يتردد في اتخاذ الخطوة وينتظر الظروف المناسبة، يوجه خالد نصيحته ويقول: ويضيف بثقة:
    1 نقطة
  11. بدأت قصة آدم منذ كان في الثانية عشرة من عمره، حين شاهد مقطع لطفل يبرمج روبوت صغير ويتحكم فيه بالأكواد. أثارت تلك اللحظة بداخله تساؤلًا لم يفارقه: منذ ذلك اليوم، تحول اهتمامه من ألعاب الفيديو إلى اكتشاف أسرار التقنية، ولم يتوقف عن طرح الأسئلة: كيف تُبنى المواقع؟ كيف تصل الرسائل عبر الإنترنت؟ وكانت البداية مع لغة Python حيث أنجز تطبيقات بسيطة مثل برنامج لحساب العمر، قبل أن يكتشف أن شغفه الحقيقي هو تطوير الويب، خاصة بعدما رأى صديقه ينشئ موقع باستخدام HTML و CSS. عندها أدرك أن هذا هو المسار الأقرب لطموحه. كان يقضي وقتًا طويلًا في ألعاب الفيديو، ثم قرر أن يجعلها مكافأة له بعد إحراز تقدم في التعلم. فبدأ بتعلم أساسيات Python من مصادر متنوعة على الإنترنت، وطبقها في مشاريع بسيطة كآلة لحساب العمر. مع مرور الوقت أدرك أن طريقه ليس واضح، وكان يواجه تشتت في مصادر التعلم، فيعيد الشرح أكثر من مرة دون أن يعرف هل يسير بالاتجاه الصحيح. اتخاذ القرار: لماذا التحق بأكاديمية حسوب؟ بعد تجربة بسيطة في تطوير صفحات ويب، أدرك أن هذا المجال الأقرب لاهتمامه. شعر بالحاجة إلى توجيه منظم، يخرجه من دوامة التعلم العشوائي. فوجد في أكاديمية حسوب ما يبحث عنه، برنامج تدريبي يغطي الجوانب النظرية والعملية، مع دعم مباشر من مدربين محترفين. يقول آدم عن تجربته: التحديات والنمو: كيف كانت التجربة؟ لم تكن رحلته خالية من التحديات، فقد واجه تحديات في تنظيم الوقت بسبب ضغط الدراسة وظروف أسرية، وصلت أحيانًا إلى انقطاع دام سبعة أشهر. ومع ذلك لم يتخلى عن هدفه. "كنت أخصص وقت العصر للبرمجة، لكن أحيانًا تمر أيام طويلة دون أن أتعلم شيئًا. كنت أواجه صعوبات خاصة في JavaScript، لكنني تخطيتها بالممارسة وسؤال المدربين الذين كانوا يردون خلال دقائق." أحد التحديات غير التقنية التي واجهها أيضًا كان صغر سنه، حيث لم يكن يملك بطاقة هوية تسمح له بخوض الاختبار النهائي، فاستخرجها بدعم من والده، وتمكن من اجتياز الاختبار والحصول على الشهادة. مشروع التخرج: الذروة العملية كجزء من التدريب العملي، طور مشروع تخرجه بعنوان معرض الصور، وهو تطبيق ويب يستخدم React.js للواجهة الأمامية، و Node.js مع MongoDB في الجانب الخلفي. التطبيق يحاكي منصات مشاركة الصور الاحترافية، مع واجهة سهلة وتجربة مستخدم متكاملة. "تعلمت من خلال المشروع كيفية تنسيق الكود واختبار التطبيق قبل الإطلاق. كما وثقت كل مرحلة على GitHub، واعتبرته بداية معرض أعمالي البرمجي." بعد البرنامج: الإنجاز والتطلعات إلى جانب مشروع معرض الصور، يعمل على تطوير مشروعه الشخصي Oraniom، وهو متجر رقمي يخطط من خلاله لبيع المنتجات البرمجية مثل أكواد الألعاب والرخص الرقمية، ويطمح لاطلاق منصة تواصل اجتماعي بمزايا تركز على الخصوصية وتجربة المستخدم. لا ينوي آدم التوقف هنا، ففي الوقت نفسه يواصل تطوير مهاراته ويكمل مسار TypeScript، ويخطط للالتحاق بدورات متقدمة في الذكاء الاصطناعي باستخدام Python. يقول: الرسالة الختامية بهذه الرسالة اختتم آدم قصته موجهًا دعوة لزملائه من الشباب المهتمين بالبرمجة لبدء رحلتهم اليوم لا غدًا.
    1 نقطة
  12. نعم، يوجد حلول حقيقية وعملية تستطيع استخدامها عندما تكون بياناتك حساسة وكبيرة ولا يمكنك إرسالها إلى نماذج سحابية مثل GPT أو Gemini، وفي نفس الوقت النماذج المحلية ضعيفة. هذه بالضبط مشكلة شائعة في الشركات التي تعمل على GraphRAG. إليك أفضل الخيارات الآمنة والعملية بدون تعقيد: 1) استخدام LLM سحابي لكن بدون إرسال البيانات (Zero-Data / On-Device Processing) بعض الشركات بدأت توفر وضع اسمه: Zero-data mode أو Data Minimization الفكرة: ترسل دائماً ملخصات صغيرة جداً آمنة وليس البيانات الأصلية. وهذا يناسب GRAPHRAG تماماً، لأنك تستطيع: معالجة بياناتك محلياً بناء الكيانات والعلاقات بالـ locally إرسال فقط “تمثيل مجرد” للكيانات (بدون نص خام) مثال: بدلاً من إرسال تقرير حساس، ترسل فقط: اسم كيان: "Client A" علاقة: "Increased sales by 30%" بدون أي تفاصيل سرية. 2) استخدام نماذج صغيرة محلياً لكن تحسينها باستخدام تقنيات خاصة الحقائق الآن: النماذج الصغيرة (مثل Mistral 7B، Llama 8B، Qwen 7B) عندما تعمل بدون تحسين تكون فعلاً ضعيفة. لكن هناك تحسينات ترفع الجودة بشكل كبير جداً بدون تدريب مكلف: 1) RAG + GraphRAG يعوض ضعف النموذج المحلي بنسبة كبيرة. 2) Fine-Tuning خفيف (LoRA) يكلفك: ذاكرة 8GB تدريب لمدة ساعة ويعطي دقة أعلى بكثير. 3) استخدام quantization مثل GGUF أو GPTQ لتشغيل نماذج 8B على جهاز متوسط بدون فقد كبير في الجودة. 3) استخدام نماذج متخصصة بدلاً من "LLM عام" غالباً المشكلة ليست في الحجم، بل في اختيار نموذج غير مناسب. أمثلة قوية: DeepSeek-R1 Distill 14B Qwen2.5 14B Mixtral 8x7B Llama 3.1 8B Instruct Phi-3 Medium (جيد جداً على المعلومات المنظمة) هذه النماذج حجمها متوسط وأداؤها ممتاز إذا تم دمجها مع RAG/GraphRAG. 4) معالجة البيانات الضخمة محلياً ثم استخدام LLM فقط للبنية إذا بياناتك كبيرة جداً، لا ترسلها للنموذج. بدلاً من ذلك: Local Preprocessing استخراج الكيانات والعلاقات محلياً بناء Graph دمج النصوص وفهرستها Remote Small Tasks إرسال: سؤال أسماء كيانات توصيفات صغيرة وليس البيانات الأصلية. هذا يجعل النظام آمناً 100%. 5) استخدام LLM داخل بيئة سحابية خاصة (Private Cloud) ليس بالضرورة أن تستخدم خدمات عامة مثل GPT. يمكنك استخدام: Azure OpenAI Private Network Google Vertex AI Private Service AWS Bedrock PrivateLink هذه تضمن: البيانات لا تخرج من شبكتك لا تُستخدم لتدريب النماذج تشغل فقط inference مناسبة جداً للبيانات الحساسة. 6) بالنسبة لـ GraphRAG بالتحديد هو لا يحتاج LLM قوي جداً في كل خطوة. يوجد 3 مراحل: استخراج الكيانات والعلاقات بناء المجتمعات تلخيص hierarchies الاستعلام النهائي يمكنك تقسيم العمل كالآتي: 1 و2 محلياً بالكامل (بدون نموذج قوي) 3 بنموذج متوسط محلي 4 بنموذج سحابي بدون إرسال بيانات حساسة (فقط السياق المختصر) وبذلك تحل المشكلة تماماً. لذا الخلاصه نعم، يمكنك العمل على بياناتك الحساسة بدون إرسالها إلى نماذج سحابية، وما زال بإمكانك الحصول على دقة ممتازة عبر: GraphRAG Local preprocessing تحسين النماذج الصغيرة Zero-data usage Private cloud inference LoRA fine-tuning Quantization إذا تريد، أقدم لك: خطة كاملة لبناء GraphRAG آمن 100% اختيار أفضل نموذج محلي لك تصميم بنية نظام تجمع بين الأمن والقوة كود جاهز للربط بقاعدة بياناتك أخبرني فقط نوع بياناتك (نصوص؟ جداول؟ تقارير؟).
    1 نقطة
  13. وعليكم السلام ورحمة الله وبركاته. الإجابة المختصرة هي لا، فعالم البيانات لا يحتاج للتعمق الكبير في Data Structures & Algorithms لكن يحتاج فهم أساسي جيد. فعالم البيانات يقضي معظم وقته في فهم البيانات، تنظيفها، استكشافها، بناء نماذج التعلم الآلي، وتفسير النتائج للمدراء وصناع القرار. هذه المهام تتطلب مهارات مختلفة عن بناء أنظمة برمجية معقدة. وفي معظم الحالات، المكتبات الجاهزة مثل Pandas وNumPy وScikit-learn قد حلت هذه المشاكل بكفاءة عالية. وظيفتك أن تعرف كيف تستخدمها بذكاء، لا أن تعيد اختراع العجلة.
    1 نقطة
  14. لا يحتاج عالم البيانات إلى التعمّق في هياكل البيانات والخوارزميات بنفس الدرجة المطلوبة من مهندس البرمجيات، لكن امتلاك فهم راسخ للأساسيات ليس مجرد رفاهية، بل شرط للقدرة على التعامل مع البيانات بكفاءة واتخاذ قرارات صحيحة أثناء بناء النماذج. على الرغم من أنك ستعتمد غالبًا على مكتبات قوية ومُحسّنة مسبقًا مثل: NumPy، Pandas، Scikit-Learn، PyTorch، TensorFlow إلا أن هذه المكتبات مبنية أصلًا على مبادئ خوارزمية واضحة، ومعرفتك لها تمنحك ثلاث فوائد أساسية: 1. كتابة كود performant و scalable قد ينجح الكود المُستخدم على عيّنة صغيرة، لكنه يفشل أو يصبح بطيئًا عند التعامل مع ملايين الصفوف. هنا يظهر دور فهمك لهياكل البيانات: استخدام Set بدلًا من List للبحث يقلل الوقت من O(n) إلى O(1). دمج العمليات بدلاً من الحلقات المتداخلة يمنع الأداء من الانهيار من O(n²) إلى O(n). معرفة كيفية التعامل مع المصفوفات الكبيرة يحميك من أخطاء الذاكرة. هذه التفاصيل هي ما يفصل بين “كود يعمل” و“كود احترافي يمكن استخدامه في الإنتاج”. 2. فهم كيفية عمل نماذج Machine Learning نفسها الكثير من نماذج الذكاء الاصطناعي مبنية مباشرة على هياكل بيانات معروفة: Decision Trees و Random Forests و XGBoost تعتمد على أشجار القرار وتجزيء البيانات. Neural Networks تعتمد على المصفوفات والعمليات الخطية (Matrices & Tensors). خوارزميات الـ NLP غالبًا تستخدم الرسوم البيانية (Graphs) والتدرج في المعاني Embeddings. Clustering يستخدم خوارزميات تعتمد على حسابات المسافات بكفاءة عالية. فهم هذه الأسس يجعل نتائجك أو تفسيرك للنماذج أفضل بكثير. 3. النجاح في مقابلات العمل كثير من الشركات—خصوصًا التقنية—لا توظّف عالم بيانات لا يمكنه كتابة كود نظيف وحل مسائل برمجية. لن يطلب منك أحد تنفيذ AVL Tree من الصفر، ولكن: قد تُسأل عن الفرق بين O(n log n) و O(n²) في خوارزميات الفرز. أو كيفية تحسين زمن تنفيذ كود يعالج ملفًا حجمه 5GB. أو كيفية إعادة كتابة عملية Feature Engineering بطريقة أكثر كفاءة. هذا يضمن أنك تستطيع التفكير منطقيًا، وهي مهارة يُبنى عليها أي دور في البيانات. ما المستوى المطلوب تحديدًا؟ لست بحاجة للتعمّق الأكاديمي، لكنك تحتاج ما يلي: هياكل البيانات الأساسية: Arrays / Lists Sets Dictionaries / Hash Maps Tuples فهم كيفية عمل الأشجار Tree Structures نظريًا (خاصة لشرح عمل Decision Trees) الخوارزميات الأساسية: Searching & Sorting Recursion Greedy & Dynamic Programming (مستوى بسيط–متوسط) Big-O Notation وتحليل الزمن والمساحة Vectorization وفهم الفرق بين العمليات المتجهة والحلقية (مهم جدًا في NumPy) لذلك فالمعرفة المتوسطة العميقة خيرٌ من الجهل التام أو التعمّق الذي لا تحتاجه. ومن يملك فهمًا جيدًا لهياكل البيانات والخوارزميات يكون طريقه في علوم البيانات أوضح وأسرع.
    1 نقطة
  15. ليس بنفس العمق الذي يحتاجه مهندس البرمجيات ولكن الفهم الجيد للأساسيات ضروري بالطبع، ففي الواقع العملي ستتعتمد بشكل كبير على مكتبات جاهزة ومحسنة مثل Pandas وScikit-Learn. أي لن تقوم بكتابة Binary Search Tree من الصفر، ولن تقوم ببرمجة خوارزمية Sorting بنفسك، فتلك المكتبات مكتوبة بلغات مثل C++ وتم تحسينها لأقصى درجة، ومهمتك هي استخدامها وليس إعادة اختراعها. لكن الجهل التام بأساسيات هياكل البيانات والخوارزميات سيجعلك تكتب أكواد بطيئة وغير قابلة للتوسع، بمعنى عند التعامل مع ملايين الصفوف، فالفرق بين استخدام List و Set للبحث عن قيمة قد يعني الفرق بين كود ينتهي في ثانية وكود ينتهي في ساعة. لذا يجب أن تفهم الفرق بين O(n)O(n) و O(n2)O(n2) لتتجنب كتابة حلقات تكرارية تدمر أداء النموذج. كذلك خوارزميات الـ Machine Learning نفسها تعتمد على هياكل بيانات، ومنها: Decision Trees و Random Forests تعتمد كليًا على مفهوم الأشجار. Neural Networks تعتمد على المصفوفات Matrices والعمليات الخطية. NLP يعتمد بعضها على Graphs. وفي مقابلات العمل سيُطلب منك حل مسائل برمجية كالتي على منصة LeetCode كجزء من المقابلة للتأكد من قدرتك على كتابة كود نظيف ومنطقي. لذا في هياكل البيانات قم بدراسة: Arrays و Lists. Hash Maps وDictionaries. Sets. Tuples. Trees فهم نظري لكيفية عملها لأنها أساس أغلب نماذج الـ ML. وبالنسبة للخوارزميات ادرس أساسيات التالي: Sorting و Searching. Recursion. Dynamic Programming. Big O Notation.
    1 نقطة
  16. Django هو إطار عمل مجّاني ومفتوح المصدر، مكتوب بلغة Python، وتتبع المشاريع فيه بنية Model-View-Template (عادة ما تختصر إلى MVT). يؤكّد Django على قابلية إعادة الاستخدام Reusability للمكونات وكذلك على التطوير السريع، بالإضافة إلى مبدأ عدم التكرار. تستخدم لغة Python في جميع مفاصل إطار العمل هذا، كالإعدادات ونماذج قواعد البيانات وغيرها. ومن أشهر المواقع التي تستخدم Django هي: Pinterest ،Instagram ،Mozilla ،The Washington Times ،Disqus ،National Geographic وغيرها الكثير. طوّر Django سنة 2003 على يدي المبرمجين Adrian Holovaty و Simon Willson اللذين يعملان في صحيفة Lawrence Journal World، وذلك عندما انتقلا إلى لغة Python لبناء التطبيقات. ثم أطلق Django سنة 2005 تحت رخصة BSD، وقد سمّي بهذا الاسم تيمنًا بعازف الغيتار Django Reinhardt. بنية MVT تنقسم بنية المشاريع في Django إلى ثلاثة أقسام مرتبطة ببعضها البعض، ولكنّها مختلفة عن أطر العمل الأخرى التي تتبع بنية (MVC - Model, View, Controller) مثل Laravel في PHP وغيرها، حيث تتكون المشاريع في Django من النموذج Model والعرض View والقالب Template. يتولى قسم النموذج معالجة البيانات والتعامل معها واسترجاعها، ويدعم Django العديد من قواعد البيانات، مثل: SQlite ،MySQL، و PostgreSQL. أما العرض فعبارة عن مجموعة من دوال Python التي تستجيب لعنوان URL معين، ووظيفة العرض هي تحديد البيانات والمعلومات التي يجب عرضها. أما القالب فهو عبارة عن ملف بصيغة HTML يتم من خلاله تحديد الطريقة التي ستظهر بها المعلومات التي يعرضها قسم العرض. أين المتحكم Controller إذًا؟ المتحكم هنا هو إطار العمل نفسه، أي الآلية التي يتم من خلالها إرسال الطلب إلى العرض المناسب بالاعتماد على عنوان URL محدّد. تثبيت Django إطار العمل Django هو إحدى الحزم الخاصة بلغة البرمجة بايثون، وتوفّر هذه اللغة مدير حزم خاصّ يدعى pip يتم من خلاله تثبيت وتحديث وإزالة الحزم بسهولة ويسر؛ لذا ستكون الخطوة الأولى في تثبيت Django هي التأكد من وجود مدير الحزم pip وتثبيته إن لم يكن متوفّرًا. تنصيب pip لتنصيب إطار العمل Django ستحتاج إلى مدير الحزم الخاصّ بـ Python وهو pip، ولحسن الحظّ فإن pip متوفّر في نسخة Python 2.7.9 وما بعدها، وفي نسخة Python 3.4 وما بعدها. في حال عدم توفّر pip في نسخة Python المنصّبة لديك يمكنك تنصيبه باتباع الخطوات التالية: حمّل الملفّ get-pip.py. توجه في سطر الأوامر إلى المكان الذي حملت فيه الملف السابق، ثم اكتب التعليمة التالية: python get-pip.py استخدام سطر الأوامر لنجرب الآن استخدام مدير الحزم في بايثون لتنصيب Django، توجّه الآن إلى سطر الأوامر ثم اكتب الأمر: pip install django==1.9 هل ظهرت لك رسالة خطأ؟ ما المشكلة، ألم نقم بتنصيب pip قبل قليل؟ هذا صحيح، ولكننا لم نخبر سطر الأوامر بأن يوجّه أي تعليمة تبدأ بكلمة pip إلى مدير حزم بايثون، وللقيام بذلك اتبع الخطوات التالية: في أوبنتو: يجب تنصيب حزمة python3-pip إن كنت تستخدم الإصدار الثالث من بايثون أو python-pip للإصدار الثاني من بايثون، لتتمكن من استخدام pip في سطر الأوامر في أبونتو، وللقيام بذلك اكتب الأمر التالي في سطر الأوامر: sudo apt-get install python3-pip أدخل كلمة المرور الخاصة بك، وستبدأ عملية التثبيت، وبعد الانتهاء يمكنك تنصيب أي حزمة خاصة بلغة بايثون عن طريق سطر الأوامر مباشرة. في نظام Windows: أما في نظام Windows فيجب إضافة السطر التالي: C:\Python34\scripts; إلى مسار النظام System path، وللقيام بذلك اتبع الخطوات التالية: انقر بزر الفأرة الأيمن على أيقونة Computer واختر Properties من القائمة المنسدلة: انقر على أيقونة Advance system settings، وفي مربع الحوار المنبثق اضغط على أيقونة Environment Variables. انقر نقراً مزدوجًا على متغير النظام Path في الجزء السفلي من مربع الحوار المنبثق. أضف السطر السابق إلى نهاية السلسلة النصّية، بعد الفاصلة المنقوطة (;) (إن لم تكن هناك فاصلة منقوطة في نهاية السطر فقم بإضافتها). اضغط Ok ثم أغلق بقية النوافذ بالضغط على Ok. يمكنك الآن استخدام pip من سطر الأوامر مباشرة. البيئة الافتراضية Virtual Environment قبل البدء بتنصيب Django سنعمل على تنصيب أداة مفيدة جدًّا من شأنها المساعدة على ترتيب البيئة البرمجية على حاسوبك. يمكن تجاوز هذه الخطوة، ولكن ينصح بها بشدّة. تعمل البيئة الافتراضية على عزل مشاريع Python أو Django الخاصّة بك عن بعضها البعض، وهذا يعني أن إجراء التعديلات على موقع إلكتروني معيّن لن تؤثّر على المشاريع الأخرى التي تعمل عليها. ستحتوي البيئة الافتراضية على الملفات التنفيذية الخاصة بـ Python بالإضافة إلى نسخة من مكتبة pip يمكنك استخدامها في تنصيب حزم Python المختلفة. سننشئ مجلدًا سيحتوي على البيئة الافتراضية التي سوف ننشئها بعد قليل. mkdir mysite cd mysite يتطلب إنشاء البيئة الافتراضية تنصيب حزمة virtualenv وسنستعين بـ pip للقيام بذلك: pip install virtualenv لاستخدام virtualenv من سطر الأوامر مباشرة في أوبنتو يجب تنصيب الحزمة virtualenv، وللقيام بذلك اكتب الأمر التالي في سطر الأوامر: sudo apt-get install virtualenv بعد اكتمال عملية التنصيب يمكنك إنشاء البيئة الافتراضية بالشكل التالي: virtualenv myvenv ستنشئ هذه الشيفرة بيئة افتراضية وهي عبارة عن مجموعة من المجلدات. لتفعيل البيئة الافتراضية الجديدة في نظام Windows استخدم الشيفرة التالية: myvenv\Scripts\activate أما في نظامي Linux و OS X فاستخدم: source myvenv/bin/activate ملاحظة: قد لا تحصل على النتيجة المرجوّة من الشيفرة السابقة، لذا يمكنك استخدام هذه الشيفرة: . myvenv/bin/activate سيتغيّر سطر الأوامر وذلك بإضافة كلمة (myvenv) إلى بداية السطر، وهذا يعني أن الأمور تسير على ما يرام. ولإغلاق البيئة الافتراضية يمكنك استخدام التعليمة التالية: deactivate تنصيب Django بعد اكتمال الخطوتين السابقتين يمكننا الآن تنصيب Django وذلك بتنفيذ الأمر التالي (انتبه إلى وجود علامتي مساواة لا علامة واحدة): pip install django==1.9 بعد اكتمال عملية التنصيب، وللتأكد من أن الأمور تجري على ما يرام، اكتب الأمر التالي في سطر الأوامر: python3 -c "import django; print(django.get_version())" إن حصلت على رقم النسخة (1.9 في حالتنا هذه) التي قمت بتنصيبها، فقد أصبحت جاهزًا لإنشاء مشروعك الأول على Django. إنشاء المشروع الأول مشروعنا الأول سيكون عبارة عن تطبيق استطلاع بسيط، يتألف من جزئين: موقع عام يتيح مشاهدة الاستطلاعات والتصويت عليها. لوحة تحكم تتيح لنا إضافة وحذف وتعديل الاستطلاعات. هذا المشروع سيكون مبنيًا على الإصدار 1.9 من Django والإصدار 3.4 من Python. في حال كنت تستخدم الإصدار 2.7 من Python فيتوجب عليك حينها إضافة بعض التعديلات على الشيفرة التي تكتبها، وسنشير إلى ذلك في محلّه. انتقل إلى سطر الأوامر وتوجه من خلاله إلى المجلد الذي ترغب استخدامه لإنشاء المشروع، وبإمكانك استخدام أي مجلد تحت أي تسمية وفي أي موقع في القرص الصلب، فلا مشكلة لدى Django في ذلك. لإنشاء المشروع نفّذ الأمر التّالي في سطر الأوامر (انتبه إلى النقطة في نهاية السطر): django-admin startproject mysite . سيعمل هذا الأمر على إنشاء مجلد باسم mysite داخل مجلد المشروع. انتبه كذلك إلى كتابة النقطة في نهاية السطر، فهي توجّه الشيفرة إلى تنصيب Django في المجلد الحالي. البنية الأولية للمشروع يحتوي مجلد mysite الذي أنشأته التعليمة السابقة، على مجموعة الملفات التالية: manage.py /mysite __init__.py settings.py urls.py wsgi.py manage.py، يُوصف هذا الملف بالسكين السويسري، وهو الأداة التي سنستعين بها للقيام بالكثير من الأشياء في إدارة الموقع، وفي تهجير قواعد البيانات وتشغيل الخادوم الخاص بـ Django، وغير ذلك الكثير. المجلد mysite هو حزمة بايثون الخاصة بمشروعنا، وسنستخدم هذا الاسم عندما نرغب في استيراد أي شيء داخله. (مثال mysite.urls). mysite/__init__.py ملف فارغ، ووجوده يعني أن هذا المجلّد هو حزمة من حزم بايثون. mysite/settings.py ملف الإعدادات الخاصة بمشروعنا. mysite/urls.py يحتوي على عناوين URL الخاصة بموقعنا، وهو أشبه ما يكون بجدول المحتويات الخاص بالموقع. mysite/wsgi.py نقطة الولوج إلى الخواديم المتوافقة مع WSGI. تشغيل الخادوم توجه في سطر الأوامر إلى المجلد الذي يحوي الملف manage.py ثم اكتب الأمر التالي: python manage.py runserver وستظهر العبارات التالية في سطر الأوامر: Performing system checks... System check identified no issues (0 silenced). You have unapplied migrations; your app may not work properly until they are applied. Run 'python manage.py migrate' to apply them. February 01, 2016 - 15:50:53 Django version 1.9, using settings 'mysite.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CONTROL-C. ملاحظة: لا تستخدم هذا الخادوم في المشاريع الإنتاجية على الإطلاق، فالهدف من هذا الخادوم هو استخدامه لأغراض التطوير فقط. أدخل العنوان التالي في متصفح الإنترنت: http://127.0.0.1:8000 ستظهر الصفحة التالية لتشير إلى نجاحنا في إنشاء أول مشروع في Django.
    1 نقطة
×
×
  • أضف...