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

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

  1. Ail Ahmed

    Ail Ahmed

    الأعضاء


    • نقاط

      12

    • المساهمات

      1193


  2. Chihab Hedidi

    Chihab Hedidi

    الأعضاء


    • نقاط

      5

    • المساهمات

      2064


  3. Jalol Sama

    Jalol Sama

    الأعضاء


    • نقاط

      3

    • المساهمات

      17


  4. عبد الوهاب بومعراف

    • نقاط

      2

    • المساهمات

      785


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

المحتوى الأعلى تقييمًا في 11/06/24 في كل الموقع

  1. السلام عليكم هو ممكن باستخدم لغه برمجه زي باثيون تكون لوحد كافي في مجال تحليل البيانات ؟
    4 نقاط
  2. هل في أمر يخليني اطلب من الكائن يتوجه لمكان ثم يتوقف ثم يسأل ثم ينتظر, باختصار هل هناك أمر (ثم) في البرمجة؟؟
    3 نقاط
  3. السلام عليكم انا هنا لم بستخدم الكود ده مش بيعرض جميع القيم وانا عاوز اعرض جميع القيمه اعمل اي ؟ ودي البيانات value = diabetes['Insulin'].value_counts() diabetes_clean.csv
    2 نقاط
  4. السلام عليكم هل باثيون متفوق في مجال الاتمتة ؟
    2 نقاط
  5. هل يوجد عندكم دورة تطبيقات الاندرويد باسنخدام لغة كوتلن؟ واذا لم يوجد هل يمكنني ان اعرض بعض المشاكل عليكم ليتم حلها؟
    1 نقطة
  6. في الوقت الحالي يوجد دورة الجافاسكريبت التي تحتوي على تطوير التطبيقات بإستخدام React Native، و لكن مع مرور الوقت ربما سيتم إضافة دورات أخرى لتطوير التطبيقات بإستخدام كوتلن، بالنسبة لأسئلتك نعم يمكنك طرحها هنا في أي وقت تريد و سيتم مساعدتك في هذه المشاكل.
    1 نقطة
  7. ظهار خظاء في الكود هو ده File "E:\PYHON\project-diabetes\Lib\site-packages\pandas\_config\config.py", line 132, in _get_single_key raise OptionError(f"No such keys(s): {repr(pat)}") pandas._config.config.OptionError: No such keys(s): 'diaplay.max_rows'
    1 نقطة
  8. السلام عليكم لو سيبت قيمه الoutliers في البيانات زي ماهي فا ده تاثيرا اي علي النموذج ؟
    1 نقطة
  9. القيم المتطرفة تؤدي إلى تشويه المتوسطات أو أوزان الانحدار في النماذج، خاصة إذا كنت تستخدم نماذج حساسة للقيم المتطرفة مثل الانحدار الخطي، حيث قد تسحب خط الانحدار باتجاهها، مما يؤدي إلى نتائج غير دقيقة، و إذا كانت القيم المتطرفة بعيدة جدا عن نطاق البيانات الأساسية، فقد تؤدي إلى زيادة التباين في النموذج، مما يجعله أقل قدرة على التعميم على بيانات جديدة. و بهذه الطريقة تتأثر جودة التنبؤات، حيث أن القيم المتطرفة قد تؤدي إلى انحراف التنبؤات، خاصة إذا كانت البيانات محدودة وتحتوي على قيم متطرفة بارزة، لذا من الأفضل معالجة القيم المتطرفة قبل بناء النموذج، سواء عن طريق إزالتها، أو استخدام طرق مثل التحويلات التي تقلل من تأثيرها.
    1 نقطة
  10. السلام عليكم لو انا اتاكيدت ان القيمه الموجود في البيانات مش صحيح هل الافضل ان امسح والا الافضل ان استخدم الKNNImputer الموجود في مكتبه sklearn ؟
    1 نقطة
  11. يعتمد هذا الأمر على نوع وطبيعة البيانات ومدى تكرار القيم الناقصة أو الخاطئة، فالحذف مفيد إذا كانت نسبة البيانات الخاطئة قليلة مقارنة بحجم البيانات بالكامل، و الحذف هنا يقلل من المخاطر التي قد تنجم عن التنبؤ الخاطئ أو القيم التقديرية غير الدقيقة، لكن إذا كانت البيانات المفقودة كبيرة أو تؤثر على عينة هامة، فقد يؤدي الحذف إلى تقليل تمثيل البيانات وبالتالي التأثير على النتائج النهائية للنموذج. أما KNNImputer يعمل عن طريق تقدير القيم المفقودة استنادا إلى الجيران الأقرب في البيانات، ويكون مناسبا إذا كانت البيانات المفقودة تعتمد إلى حد كبير على خصائص أخرى في البيانات، بينما قد يضيف بعض التعقيد الحسابي إذا كانت البيانات كبيرة جدا، وقد لا يكون مناسبا إذا كانت القيم الخاطئة لا يمكن التنبؤ بها بشكل جيد بناء على البيانات المحيطة. و يمكنك كذلك تجربة تقييم أداء النموذج بعد استخدام كل طريقة لمعرفة أيها يعطي نتائج أفضل.
    1 نقطة
  12. حاليا بايثون تعتبر واحدة من أفضل اللغات في مجال الأتمتة وهذا لأنها تتميز ببساطتها وسهولة قراءتها، مما يسهل على المبرمجين الجدد والمتمرسين استخدامها في الأتمتة، توفر بايثون مكتبات قوية لأتمتة واجهات الويب، أو واجهات سطح المكتب، كما يمكن دمج بايثون بسهولة مع لغات وأدوات أخرى، مما يزيد من مرونتها وقوتها في مشاريع الأتمتة الكبيرة والمعقدة.
    1 نقطة
  13. نعم بايثون يعد من أفضل اللغات في مجال الأتمتة و هذا لأنها تحتوي على العديد من المكتبات المساعدة مثل Selenium لأتمتة المتصفحات، PyAutoGUI لأتمتة الواجهات الرسومية، وrequests لإجراء طلبات HTTP، وهذه المكتبات تجعل تنفيذ الأتمتة أكثر سهولة وسرعة، كما توجد العديد من الموارد المجانية التي تسهل تعلم أتمتة المهام باستخدام بايثون، و يمكن استخدام بايثون لأتمتة العديد من المهام، سواء كانت متعلقة بالتفاعل مع الأنظمة أو البرمجيات الأخرى أو حتى إدارة البيانات والملفات. و يمكنك أن تطلع على هذه الأجوبة التي ستفيد :
    1 نقطة
  14. نعم يمكنك استخدام لغة بايثون وحدها في تحليل البيانات، لأنها تحتوي على مكتبات قوية تسهّل العمل في هذا المجال من أهم هذه المكتبات: Pandas: لتنظيم البيانات وتحليلها. NumPy: للعمليات الرياضية. Matplotlib و Seaborn: لرسم المخططات والرسوم البيانية. Scikit-Learn: لتطبيق خوارزميات الذكاء الاصطناعي. كما أن لغة بايثون سهلة التعلم، وتوفر أدوات مثل Jupyter Notebook التي تجعل العمل على التحليل سهل وممتع. فمثلا مكتبتا Matplotlib و Seaborn هي مكتبتان لتصور البيانات وإنشاء الرسوم البيانية ف Matplotlib توفر أساسيات الرسم، بينما Seaborn تضيف إمكانيات متقدمة وجمالية للرسومات كما تسهل عرض البيانات واستخراج الأنماط منها عبر المخططات المختلفة مثل الرسوم البيانية الشريطية والرسوم البيانية الخطية ومن خلال استخدامك لهذه الأدوات ستتمكن من العمل على مختلف مراحل تحليل البيانات، من جمع البيانات وتنظيفها، مرورا بتحليلها ووصولا إلى بناء النماذج التنبؤية وتصور النتائج وبايثون توفر بيئة متكاملة لذلك.
    1 نقطة
  15. وعليكم السلام ورحمة الله وبركاته. نعم، لغة بايثون تعتبر من أقوى وأشهر اللغات المستخدمة في مجال تحليل البيانات ويمكن استخدامها والإعتماد عليها بشكل كامل في هذا المجال . هناك العديد من المكتبات وأطر العمل والبرامج والمواقع والمنصات التي تجعل بايثون مفيدة جدا في مجال تحليل البيانات، مثل: Pandas NumPy Matplotlib و Seaborn SciPy Scikit-learn Statsmodels Jupyter Notebooks Google Colab تلخيصا لما سبق بايثون يمكن أن تكون كافية تماماً لتحليل البيانات في أغلب الحالات بفضل الأدوات والمكتبات القوية التي تدعمها.
    1 نقطة
  16. بالتأكيد يمكن استخدام لغة برمجة مثل بايثون أو R بشكل كاف في مجال تحليل البيانات، فكلتا اللغتين توفران مجموعة قوية من المكتبات والأدوات التي تسهل تحليل البيانات ومعالجتها، فبايثون سهلة التعلم ولها مجتمع دعم كبير، و متعددة الاستخدامات، حيث يمكن استخدامها في تطوير الويب، الأتمتة، وغيرها، و كذلك R مصممة خصيصا للتحليل الإحصائي، و قوية في التصور البياني وتحليل البيانات الإحصائية، و يبقى اختيار اللغة يعتمد على احتياجاتك الخاصة والمجال الذي تعمل فيه، ولكن كلتا اللغتين تعتبران خيارين ممتازين لتحليل البيانات.
    1 نقطة
  17. نعم يمكن أن تكون هذه اللغات كافية بشكل كبير في مجال تحليل البيانات، حيث توفران الأدوات اللازمة لمعظم العمليات التي تحتاجها، حيث أن بايثون تعتبر خيارا ممتازا للمبتدئين والمحترفين على حد سواء، و توفر مكتبات قوية لتحليل البيانات وتعلم الآلة، بالإضافة إلى مكتبات متقدمة لمجالات الذكاء الاصطناعي والتعلم العميق. بايثون مناسبة إذا كنت تخطط للقيام بأعمال تحليلية وتطوير تطبيقات في نفس الوقت. و حتى لغة R تتميز بتركيزها القوي على الإحصائيات والتحليل الرياضي، وهي شائعة جدا في الأوساط الأكاديمية والأبحاث العلمية، و تحتوي على مكتبات قوية، مما يجعلها مناسبة لتحليل البيانات الاستكشافية وبناء النماذج الإحصائية بسهولة.
    1 نقطة
  18. السلام عليكم ده الكود plt.figure(figsize=(12,8)) sns.histplot(data=diabetes , x="Insulin" , bins=30, kde=True) plt.title("Distribution of Insulin Levels") plt.xlabel("Insuline Level") plt.ylabel("Frequency") plt.grid(True) plt.show() وده الرسم البياني الخاصه بالكود انا عاوز اضافيه تاريخ البيانات دي في العرض ده فا ازي اعمل كده ؟
    1 نقطة
  19. وعليكم السلام ورحمة الله وبركاته. هل تقصد إضافة التاريخ في عنوان الرسم البياني أم ماذا ؟ إذا كنت تريد إظهاره في الرسم البيانات ليوضح تاريخ السنة الخاصة بتلك البيانات يمكنك إستخدام التالي : import datetime # الحصول على تاريخ اليوم today = datetime.datetime.today().strftime("%Y-%m-%d") plt.figure(figsize=(12,8)) sns.histplot(data=diabetes , x="Insulin" , bins=30, kde=True) plt.title(f"Distribution of Insulin Levels - Date: {today}") plt.xlabel("Insulin Level") plt.ylabel("Frequency") plt.grid(True) plt.show() وهنا إستخدمت تاريخ اليوم ولكن انت يمكنك وضع أى تاريخ تريده . وهكذا سيتم طباعته في عنوان الرسما البياني.
    1 نقطة
  20. الراتب ذلك أمر تحدده أنت، وكمثال ليس أكثر حدد مبلغًا ثابتًا، لنقل 5000 جنيه مصري (أو أي مبلغ آخر تتفقان عليه)، وسيكون الراتب ضمانًا لشريكك، بغض النظر عن أداء العمل، وهناك عوامل لتحديد الراتب: خبرة الشريك في المجال. حجم العمل وعدد ساعات العمل المتوقعة منه. متوسط الرواتب في سوق العمل لمثل تلك الوظائف. هل سيزيد الراتب مع مرور الوقت وزيادة المبيعات؟ وكيف سيتم احتساب هذه الزيادة؟ وهل سيكون هناك حوافز إضافية للشريك بناءً على أدائه وزيادة المبيعات؟ بالإضافة إلى الراتب، قم بتقديم نظام مشاركة في الأرباح، حيث يحصل شريكك على نسبة مئوية من صافي الربح، أي تقديم 20٪ من صافي الربح الأمر الذي سيشجعه على العمل الجاد لزيادة المبيعات والأرباح. وفي حالة تكبد العمل خسارة فذلك أمر وار جدًا ولا يوجد مشروع بدون خسارة، عليك الاتفاق على تقاسم الخسارة مع شريكك، مثلاً تقسيم الخسارة بنسبة 50/50، أو 60/40، أو أي نسبة أخرى تتفقان عليها، وسيضمن ذلك أن يكون هو مسؤولاً أيضًا عن أداء العمل. وكمثال على كيفية عمل هيكل الشراكة: أنت تقدم 100000 جنيه مصري كرأس مال لبدء العمل. يحصل هو على راتب شهري قدره 5000 جنيه مصري. يحقق العمل صافي ربح قدره 20000 جنيه مصري في شهر واحد. يحصل على 20٪ من صافي الربح، أي 4000 جنيه مصري (بالإضافة إلى راتبه). إن تكبد العمل خسارة قدرها 10000 جنيه مصري في شهر واحد، فستقسم أنت وهو الخسارة بنسبة 50/50، وبالتالي سيكون مسؤولاً عن 5000 جنيه مصري من الخسارة.
    1 نقطة
  21. هل زرت فيسبوك اليوم؟ ماذا عن تويتر؟ Instagram؟ Snapchat؟ إن كان الجواب نعم، فالغالب أنك زرتها من باب العادة. السؤال إذًا كيف تبني منتجات تخلق هذه العادة؟ لحسن حظك، هناك كتاب Hooked: How to Build Habit-Forming Products لكاتبه Nir Eyal يحاول شرح هذا! أنصح جميع أصحاب المشاريع ومدراء المنتجات وكل من يرغب ببقاء مستخدميه بقراءته. قد يكون استبقاء المستخدمين (retention) أكبر التحديات التي تواجه أي مشروع، وهو ليس بالأمر السهل حتى بالنسبة لأكثر الشبكات الاجتماعيّة نجاحًا. ألقِ نظرة على المخطّط التالي الذي يبين الفرق بين عدد المستخدمين الكلي وعدد المستخدمين النشيطين (بحسب Golbal Web Index). يعرض كتاب Nir نموذج "الصّنارة" (Hook Model) المُستوحى من نموذج BJ Fogg السلوكيّ الذي ينصّ على ضرورة التحام 3 مكوّنات في لحظة واحدة حتى ينشأ السلوك المرغوب: الحافر والقدرة والمُثير. فيما يلي صورة توضّح هذا النّموذج: عندما تستخدم فيسبوك فإنك على الأرجح تتبع نموذج الصّنّارة وهذا ما يخلق "الإدمان" على فيسبوك: المُثير (الداخلي) = الملل، الفضول، الوحدة، الضجر المُثير (الخارجي) = رؤية إشعار من فيسبوك على الهاتف الفعل = النقر على تطبيق فيسبوك لبدء التصفح ببساطة المُكافأة المُتغيّرة = مشاهدة محتوى جديد ملفت للنظر التفاعل = إبداء الإعجاب، التعليق، تحديث الحالة يحتاج نموذج الصّنّارة لكي يعمل مثيرات قويّة، وجهدًا بالحدّ الأدنى للقيام بالفعل، وتنوّعًا في المحتوى، والقدرة على المشاركة في المنتج. تمعّن في منتجك واسأل نفسك هذه الأسئلة الخمسة: 1. هل يؤدي المثير الداخلي للمستخدم إلى قيامهم بالفعل مرارا؟ نشرت إحدى الزميلات هذه الصورة الغريبة على Instagram خلال احتفالات العام الصينيّ الجديد: سألتها عن سبب التقاط هذه الصورة. الحقيقة أنني سألتها خمس مرّات عن ذلك (بهدف الوصول إلى السبب الأساسي). تبيّن أنّها أرادت مشاركة شيء يجعل الآخرين يتبسّمون، وهذا بدوره يُحسّن صورتها ويرفع من مقامها مقارنةً بالآخرين. هذا ما يُسمّى العملة الاجتماعية وهذا مُثير داخليّ شائع للمشاركة. يمكن لمستخدمي Instagram التفكّر في هذا المُثير عندما يمدّون أيديهم إلى جيوبهم لالتقاط الصورة. 2. هل يظهر المثير الخارجي في الوقت المناسب لمستخدميك؟ ما هو مثيرك الخارجيّ؟ فإن كان المثير الداخلي هو الملل مثلًا، فإن المثير الحارجي هو تلك الدائرة الحمراء فوق رمز تطبيق فيسبوك في هاتفك. ربّما تكون أخرجت هاتفك لتبحث في تويتر، ولكن المثير الخارجي الذي يعرضه فيسبوك أدى بك إلى فتحه بدلًا من تويتر. لا تقتصر المُثيرات الخارجيّة على المُنبّهات والإشعارات ورسائل البريد، فلطالما استخدم كوكا كولا آلات الدفع لتحثّ المُشترين على إرواء عطشهم، والذي هو مُثير داخليّ. آلة الدفع هي المثير الخارجيّ. ما هو مثيرك الخارجيّ إذن؟ 3. هل تصميم منتجك بسيط بما يجعل الفعل سهلا؟ التطبيقات التي تخلق العادة سهلة البدء ولا تتطلب جهدًا كبيرًا. ألقِ نظرة على تويتر: افتح التطبيق، مرّر بإصبعك. هذا كل ما في الأمر! غايةٌ في السهولة! ماذا عن منتجك أنت؟ كيف تقلّل الجهد المطلوب لأداء الفعل؟ العادات تلقائيّة، لا تتطلب التفكير. هذا هو هدفك. 4. هل ترضي المكافأة مستخدميك وتتركهم في الوقت نفسه يطمعون في المزيد؟ أستخدم Flipboard لقراءة الأخبار المهمّة. التطبيقات القائمة على المحتوى تخلق العادات لأنها تقدّم تنوّعًا. يلبّي Flipboard حاجتي للمحتويات الإخباريّة ولكنّه يتركني راغبًا في محتوى جديد يكفي لعودتي. هل في منتجك محتوىً متنوّع؟ ذهبت أيام المحتوى الجامد على الويب بلا رجعة، فما بالك بالتطبيقات؟ امنح مستخدميك سببًا للعودة. 5. هل يتفاعل مستخدموك مع منتجك بحيث يضعون في منتجك شيئا قيما بالنسبة لهم؟ لا يتقن أحد هذا كما يتقنه Evernote. باعتباره حافظة لكل شيء يهمّك تجده على الويب، يجعلك Evernote تبني "مستودعًا" من المحتوى. هذا يؤدّي إلى أمرين اثنين: يُحسّن المنتج الذي يُستخدّم، ويجعل المُستخدم يعود ليجد المحتوى الّذي حفظته. الخاتمة العادات سلاح قويّ جدًّا للمنتجات والخدمات التّي تعتمد في نجاحها على التفاعل العالي. ألقينا نظرةً على بعض الأمثلة، ولكنّني أحثّك على فحص المنتجات الّتي تعتاد استخدامها واكتشاف مُثيراتها وأفعالها، وما تقدّمه من مكافئات وكيف تتفاعل معها. ترجمة -وبتصرف- للمقال Understanding Habit: How to Build a Product That Gets Used Daily لصاحبه Jason Allan. حقوق الصورة البارزة: Designed by Freepik.
    1 نقطة
  22. تعرفنا في الأجزاء الثلاثة السابقة من هذه السلسلة على إطار العمل Django وكيفية تنصيبه وبدأنا بالفعل بإنشاء تطبيق الاقتراعات من خلال هذا الإطار، وتعرفنا بشكل مبسط على المسارات والعروض وطريقة ربطها ببعض، كما تعرفنا كذلك على طريقة التعامل مع قواعد البيانات باستخدام النماذج وكيفية تهجير قواعد البيانات وطرق الاستعلام المختلفة المتوفرة في Django. وفي الجزء الرابع من هذه السلسلة سنتكلم عن المسارات URLs وآلية عملها بصورة أوسع، وسنتطرق في حديثنا إلى كيفية الاستفادة من التعابير النظامية Regular expressions لجعل مسارات تطبيقنا (تطبيق الاقتراعات) أكثر ترتيبًا ووضوحًا. من المؤكّد أنّك وأثناء تجوالك في مواقع الإنترنت قد شاهدت روابط كهذه: “ME2/Sites/dirmod.asp?sid=&type=gen&mod=Core+Pages&gid=A6CD4967199A42D9B65B1B” هذا الشكل من الروابط غير مرغوب فيه على الإطلاق في Django، إذ يستخدم هذا الإطار مفهوم أنماط المسارات URL patterns لإظهارها بصورة مرتبة وواضحة وذات دلالة في نفس الوقت. والمقصود بأنماط المسارات بكل بساطة هو أن تمتلك المسارات نسقًا معينًا، مثل: /newsarchive/<year>/<month>/ هذا يعني أنه للوصول إلى أرشيف الأخبار في هذا الموقع، ينبغي كتابة كلمة newsarchive ثم كتابة السنة المطلوبة يليها الشهر المطلوب، وما سيفعله Django هنا هو البحث ضمن مسارات التطبيق عن أي مسار يطابق ما أدخله المستخدم، لتفعيل العرض المرتبط بذلك المسار، ويعتمد Django على التعابير النظامية Regular Expression لإجراء عملية البحث، وسنتكلم عن هذا بشيء من التفصيل بعد قليل. مسارات تطبيق الاقتراعات سيؤدي تطبيق الاقتراعات الذي نعمل على إنشائه المهام التالية: صفحة رئيسية index تعرض عددًا من الأسئلة المطروحة في الموقع. صفحة تفاصيل السؤال detail تعرض سؤالًا معيّنًا إلى جانب الأجوبة المتاحة لهذا السؤال للتصويت. صفحة نتائج results تعرض النتائج المتعلقة بسؤال معين. عملية التصويت، والتي يتم من خلالها التصويت على جواب معين مرتبط بسؤال معين. وكما ذكرنا في الدروس السابقة فإنّ عملية إرسال الطلبات وتلقي الإجابة عليها هي مهمة العروض؛ لذا سننشئ أربعة عروض يختص كل منها بمهمة محددة من المهام الأربعة الخاصة بالتطبيق. افتح ملف polls/views.py في محرر النصوص المفضل لديك، ثم أضف الشيفرة التالية بعد دالة index التي أضفناها إلى هذا الملف في الدرس الثاني. def detail(request, question_id): return HttpResponse("هذا هو السؤال %s." % question_id) def results(request, question_id): response = "هذه نتائج السؤال %s." return HttpResponse(response % question_id) def vote(request, question_id): return HttpResponse("أنت تصوت على السؤال %s." % question_id) الدالة الأولى هي دالة detail وهي المسؤولة عن عرض تفاصيل السؤال الذي يرغب المستخدم التصويت عليه، أما الدالة الثانية results فمسؤولة عن عرض نتائج التصويت على سؤال معين يختاره المستخدم، أما الدالة الثالثة vote فتتحكم في عملية التصويت التي يقوم بها المستخدم. ستؤدي هذه الدوال في الوقت الحاضر مهمّة واحدة بسيطة وهي عرض عبارة خاصّة بكل دالّة على المتصفح مع إضافة معرّف السؤال الذي سيختاره المستخدم، وذلك للتعرف على آلية عمل المسارات في Django، وسنعود إلى هذه العروض في الدروس القادمة وبشكل تفصيلي لإضافة الشيفرة التي ستعطي النتيجة الفعلية المطلوبة من كل دالة من هذه الدوال. لعرض نتائج هذه الدوال على المتصفح، سنحتاج إلى ربطها بمسارات خاصة، تمامًا كما فعلنا في الدروس السابقة، ولكننا سنستخدم التعابير النظامية هذه المرة لتعيين نمط المسار الذي نرغب بربطه مع كل دالة في ملف العروض. عزل مسارات التطبيق عن مسارات المشروع قبل أن نبدأ عملية ربط المسارات بالعروض، سنتطرق إلى إحدى الممارسات التي يُنصح اتباعها بشدة عند تطوير التطبيقات باستخدام إطار العمل Django، ألا وهي عزل مسارات التطبيق عن مسارات المشروع. تتمتع تطبيقات Django بعدم ارتباطها بالمشروع الذي يحتويها، بمعنى أنّه يمكنك استخدام تطبيق الاقتراعات هذا في أي مشروع ترغب به، دون الحاجة إلى إجراء أي تعديل في بنية وهيكلية التطبيق. وتحقيق هذا الأمر لا يتطلب سوى عزل المسارات الخاصة بالتطبيق في ملف منفصل، ثم الإشارة إلى هذا الملف في ملف المسارات الرئيسي الخاص بالمشروع لتصبح مسارات التطبيق الخاصة جزءًا من مسارات ذلك المشروع. ولعزل مسارات تطبيق الاقتراعات عن المسارات الرئيسية للمشروع، توجّه إلى ملف mysite/urls.py وعدّله ليصبح بالشكل التالي: from django.conf.urls import include, url from django.contrib import admin urlpatterns = [ url(r'^polls/', include('polls.urls')), url(r'^admin/', admin.site.urls), ] قمنا في السطر الأول باستيراد الدالة include والتي ستعمل على تضمين المسارات الموجودة في ملف polls/urls.py وربطها بالمسار polls/، كما هو موضح في العنصر الأول من قائمة urlpatterns. فعلى سبيل المثال، لو طلب المستخدم العنوان mypolls/ في المتصفح يبدأ إطار العمل في البحث عن هذه الكلمة في ملف urls.py الخاص بالمشروع، وفي حالة عدم العثور عليها تظهر صفحة خطأ للمستخدم تفيد بعدم وجود هذا العنوان. وفي حالة استخدام الدالة include يضيف Django إلى مجال بحثه الملف الذي تشير إليه هذه الدالة، بمعنى أنه لو طلب المستخدم العنوان polls/3/ مثلًا فسيتم البحث أولًا عن عبارة polls في ملف mysite/urls.py الخاص بالمشروع الرئيسي، وما أن يتم العثور على العبارة المطلوبة تبدأ الدالة include بالعمل وتبدأ عملية البحث عن العبارة التالية لـ polls (الرقم 3 في مثالنا هذا) في ملف polls/urls.py الخاص بالتطبيق والذي تشير إليه الدالة. ولعزل مسارات التطبيق في ملف منفصل، توجّه إلى مجلد polls وأنشأ فيه ملفًّا جديدًا باسم urls.py، ثم أضف فيه الشيفرة التالية: from django.conf.urls import url from . import views urlpatterns = [ # ex: /polls/ url(r'^$', views.index, name='index'), # ex: /polls/5/ url(r'^(?P<question_id>[0-9]+)/$', views.detail, name='detail'), # ex: /polls/5/results/ url(r'^(?P<question_id>[0-9]+)/results/$', views.results, name='results'), # ex: /polls/5/vote/ url(r'^(?P<question_id>[0-9]+)/vote/$', views.vote, name='vote'), ] لاحظ أن بنية هذا الملف مشابهة بشكل كبير للملف mysite/urls.py، حيث يتم استيراد الدالة url في بداية الملف، كما أن قائمة المسارات urlpatterns مماثلة للقائمة الموجودة في ملف mysite/urls.py. يعمل السطر الثاني في الشيفرة السابقة على استيراد ملف العروض views.py والموجود في مجلد polls والذي يضم في الوقت نفسه ملف المسارات هذا، لذا يمكن اختصار اسم المجلد باستخدام النقطة .. كيف تعمل المسارات في Django يستخدم Django المسارات كوسيلة للربط بين العنوان الذي يدخله المستخدم في شريط العناوين الخاص بالمتصفح وبين العروض التي تؤدي وظائف مختلفة ومتنوعة، فعندما يدخل المستخدم عنوانًا معينًا في شريط العناوين يبدأ Django بالبحث ضمن المسارات المتوفرة لديه في ملفات urls.py - كما ذكرنا قبل قليل - عن أي نمط يطابق المسار المدخل، فإن حصل تطابق بين العنوان الذي أدخله المستخدم وبين أحد المسارات ينفّذ Django العرض المرتبط بذلك المسار مباشرة. أما وسيلة البحث التي يستخدمها Django فهي التعابير النظامية، وهي عبارة عن سلسلة من الرموز التي تكوّن نمطًا معيّنًا يستعمل للبحث في النصوص (المسارات في حالتنا هذه) عن أجزاء تطابق هذا النمط، وتتألف سلسلة الرموز هذه من مجموعة من الحروف أو الأرقام التي تساعد في البحث عن كلمة معينة أو عبارة أو رقم معين، وإلى جانب ذلك يمكن استخدام عدد من الرموز الخاصة التي تحمل دلالات معينة في التعبيرات النظامية مثل ^، $، ؟ وغيرها. المعامل regex والتعابير النظامية تمتلك دالة url أربعة معاملات، اثنان منها معاملات إلزامية وهما regex وview واثنان اختياريان هما kwargs و name. والمعامل regex في دالة url عبارة عن سلسلة نصية خام تتضمن تعبيرًا نظاميًا، يستخدمه Django في مطابقة العناوين المدخلة من قبل المستخدم مع المسارات المتوفرة في ملفات urls.py. لتوضيح كيفية استخدام التعابير النظامية في Django سنبدأ أولًا بدالة url في ملف mysite/urls.py: url(r'^polls/', include('polls.urls')), لاحظ أن المعامل الأول يبدأ بالرمز ^، وهو أحد الرموز الخاصة في التعابير النظامية، ويشير إلى وجوب ورود الكلمة التي تلي هذا الرمز في بداية الجملة، وفي حالتنا هذه يتم البحث عن العبارات التي تبدأ بـ polls/، وهذا يعني أن العبارات polls/30 و polls/q=44 و polls/polls/polls/ و polls/sport/football/worldcup/2014 تكون كلها مطابقة لهذا النمط، إذ أنّ العبارات كلها تبدأ بـ polls/. عند استخدام الدالة include في هذا المسار، يبدأ Django بالبحث عن العبارات التي تبدأ بـ polls/ في ملف mysite/urls.py مضافًا إليها كل العبارات الموجودة في ملف polls/urls.py. يستخدم الرمز الخاص $ للإشارة إلى وجوب ورود الكلمة التي تسبق هذا الرمز في نهاية الجملة. لاحظ المثال التالي: url(r'^polls/$', views.index, name='index'), سيبحث Django في هذه الحالة عن العبارات التي تكون فيها كلمة polls/ في بداية ونهاية الجملة في الوقت ذاته، بمعنى أن العبارات polls/30 و polls/q=44 و polls/polls/polls/ و polls/sport/football/worldcup/2014 لن تكون مطابقة لهذا النمط، إذ أن كلمة polls/ تقع في بداية هذه الجمل، ولكنها ليست في نهايتها، أما العبارة polls/polls/polls فليست مطابقة لأن الكلمة المطلوبة ليست في بداية ونهاية الجملة في الوقت ذاته، فكلمة polls/ الأولى تقع في بداية الجملة وليست في نهايتها، وكلمة polls/ الأخيرة موجودة في نهاية الجملة وليست في بدايتها، وبهذا لا يحصل التطابق. لنرفع الآن من مستوى تعقيد السلاسل المستخدمة كتعابير نظامية، ونأخذ دالة url التي تربط المسار بالعرض detail في ملف polls/urls.py: url(r'^(?P<question_id>[0-9]+)/$', views.detail, name='detail'), يستخدم Django الأقواس لالتقاط النص الذي يطابق النمط المستخدم في التعابير النظامية، ويمكن إسناد هذه القيمة إلى متغير بالشكل التالي: ?P<variable_name>، وفي مثالنا هذا سيتم إسناد القيمة المطابقة للتعبير النظامي إلى المتغير question_id. يتألف التعبير [0-9]+ من جزأين، الأول هو [0-9] ويطابق الأعداد التي تضم الأرقام من 0 إلى 9 حصرًا ولن يحدث التطابق في حال وجود أي حرف حتى مع وجود الأرقام، أما علامة + فهي إحدى الرموز الخاصة بالتعابير النظامية والتي تعني تكرار الأرقام مرة واحدة أو أكثر. هذا يعني أن Django سيبحث عن أي عبارة تبدأ بأي عدد (مثلًا: 3، 20، 4003 تطابق النمط، لكن abc، 3b2، ac3 لن تطابق النمط)، وفي حال مطابقة النمط لعبارة معينة سيتم إسنادها إلى المتغير question_id المستخدم في دالة detail الموجودة في ملف polls/views.py. للتأكد من ذلك، قم بتشغيل الخادوم الخاص بـ Django، من خلال سطر الأوامر، ثم أدخل العنوان التالي في المتصفح، ولاحظ النتيجة: http://127.0.0.1:8000/polls/33/ ما حدث هنا، هو أنك بعد أن أدخلت العنوان السابق في المتصفح، بدأ Django في البحث في ملف mysite/urls.py عن أي نمط يطابق العنوان المدخل، وبعد أن وجد أن النمط ^polls/ مطابق لهذا العنوان، بدأ المعامل الثاني للدالة url بالعمل والذي يتضمن الدالة include التي توجّه Django للبحث مرة أخرى عن العبارات التي تلي الكلمة polls/ ضمن العنوان المدخل، وتتم عملية البحث في الملف الذي تشير إليه الدالة وهو polls/urls.py، وبعد أن وجد Django أن النمط [0-9]+ مطابق لـ 33 بدأ المعامل الثاني للدالة url enter code hereبالعمل وهو تنفيذ العرض المرتبط بهذا المسار (detail) والموجود في ملف views.py. جرب تغيير الرقم (33) إلى أرقام أخرى، كذلك جرب كتابة حروف بدلًا من الأرقام ولاحظ النتائج. جرّب الآن تعديل العنوان إلى الشكل التالي، ولاحظ النتيجة: http://127.0.0.1:8000/polls/33/results/ يوضح الجدول التالي بعض التعابير النظامية والأنماط الناشئة من هذه التعابير: التعبير النظامي النمط [A-Z]+ الحروف الإنكليزية الكبيرة مع تكرارها لمرة واحدة على الأقل [A-Za-z]+ الحروف الإنكليزية الكبيرة والصغيرة مع تكرارها لمرة واحدة على الأقل [0-9]+ جميع الأرقام مع تكرار الرقم لمرة واحدة على الأقل \w يطابق هذا النمط أي كلمة \d يطابق هذا النمط أي رقم [A-Za-z0-9]+ يطابق هذا النمط جميع الحروف الإنكليزية إضافة إلى الأرقام للاطلاع بشكل أكبر على التعابير النظامية والرموز المستخدمة فيها، يمكن زيارة المواقع التالية: * Regular-Expressions.info * Regexr، يتيح هذا الموقع تجربة التعابير النظامية بصورة مباشرة في المتصفح. المعامل name المعامل name عبارة عن سلسلة نصية يمكن من خلالها تحديد اسم خاص بالمسار، وسنستفيد من هذا الاسم لاحقًا في الإشارة إلى المسار عند التعامل مع القوالب في الدروس القادمة. خاتمة تعرفنا في هذا الدرس على المسارات في إطار العمل Django وآلية عملها وكيفية الاستفادة من التعابير النظامية في إنشاء المسارات وتمرير المتغيرات إلى العروض. درسنا القادم سيكون حول العروض وأنواعها وآلية عملها، وسنبدأ بكتابة العروض المفصلة الخاصة بتطبيق الاقتراعات، وربطها بالمسارات. المصدر: توثيقات Django
    1 نقطة
  23. أشعر أني محظُوظٌ جدًا لاختياري درب تأسيس شركة نَاشئة، وإطلاق مُنتج من شأنه أن يُسهِل حياة الكثير من الناس، Buffer ينمُو بشكلٍ سريع، الفريق الآن يضُم 25 شخصًا وقد تخطينا عتبة 4 ملايين دولار كإيرادات سنوية. عندما أفكر في كيفية تسارع الأمور من حولي، وما كان مطلوبًا مني القيام به، يتبادر إلى ذهني بشكلٍ خاصٍ ومباشر، مقال بول جراهام تحت عُنوان: "كيف تُحصِّلُ ثروة؟" وبالأخص هذا المقطع: هنالك الكثير لتعلُمه إن أنتم اخترتم البدء في إنشاء مشّرُوعِكم الخاص، شخصيًا استمتعت كثيرًا في مِشوار التعلم، ولا يُمكنُني إلا أن أنصح به الآخرين، لأنني لا أجد طريقًا أفضل لعيش حياة أرقى، أقوم فيما يلي بسرد ست نصائح تُساعد على البدء في أي مشّروع خاص وأيضًا الاستمرار فيه: 1- جرّب كثيرًا شخصيًا، حاولت في الكثير من المرات العمل على إنشاء مشروع ناجح، عدم جدّيتي ربما كانت لها نصيبٌ في عدم نجاحي حينها، ومع ذلك لي العديد من المشاريع المُصغرة مُنتشرة على الويب. غالبًا ما يُسيء الناس فهم مبدأ النجاح، فأن تكون ناجحًا لا يعني بالضرورة أن تعتمد على عامل التركيز مُنفردًا، فترمي بذلك ما بحوزتك من بيضٍ في سلةٍ واحدة، على الأقل هذه تجربتي وهذا ما حدث معي شخصيًا، فقد جربتُ العديد من الأشياء على تنوعها واختلافها. منها، أني عندما بدأتُ العمل على Buffer كنت أعمل كمُطور برامج حُر بدوام كامل، المغزى أنه إذا أردت شدّ انتباه الآخرين إلى مشروعك وتحبيبه إليهم فعليك بتحويل وصب اهتمامك فقط على العمل الذي تراه ينجح ويأتي بالنتائج. 2- حافظ على حماسك عندما أتذكر محاولتي الأولى لإنشاء مشروع، أذكر أنه من بين العوامل التي كانت تُبقيني مُحفزًا أني كنت أقرأ باستمرار كُتبًا حول المشّاريع النّاشئة ورواد الأعمال، كما كنت أشاهد العديد من اللقاءات والتصريحات لمؤسسي ومدراء هذه المشاريع، من ذلك أني شاهدت العشرات من الحوارات لأندرو وارنر التي ألهمتني كثيرًا وساعدتني على الاستمرار والمُضي قُدُمًا. صحيح أنه عليك أن تتوقف في وقتٍ ما عن حشد عناصر التحفيز، والشُروع في الأمور الجدية والعملية، لكن، في اعتقادي أنّ الكثير يستهين بأهمية التعلم والاستفادة من تجارب الآخرين، خِصيصًا عندما تتواجد في مُحيط مُثبِط لا يهتم بالمشّاريع النّاشئة ولا يُشجعُ عليها، أعتقد أن بقاءك مُتحمسًا ومُتحفزًا رغم هذا الجو وفي ظل هكذا بيئة سلبية، سيُشعِل فيك روح الإصرار على النجاح. 3- سافر وارتحل المُتعة مُلازمةٌ للسفر، هذا ما أشعر به دائمًا كلما سافرت، ولم أكن أتخيل أن السفر سيكون مُؤثرًا في حياتي، فحتى عندما أقطع بضع مئاتٍ من الكيلومترات بين مدينتي شفيلد مُتوجهًا صوب بيرمنغهام في المملكة المتحدة، ثم عابرًا العديد من القارات، ثم الانتقال للعيش في كل من سان فرانسيسكو وهونغ كونغ، أشعر أني محظوظٌ جدًا باكتشافي للعديد من الثقافات المختلفة والتعرف على أُناس رائعين. أعتقد أنك إذا ما قررت خوض تجربة السفر فأنت تكون قد خطوت وبصفة آنية خطوةً نحو النجاح، فمهما كان العمل الذي ترغبُ في القيام به، فمعرفتك لما تعيش من أجله وتقدُمُك بخطوات قد لا تخلو من الشك نحو مصيرِ لا تعلمه، سيجعلك مُنفتح الذهن، فاتحًا لنفسك آفاقًا وفُرصًا جديدة. من الطبيعي والبديهي أن يكون لديك انتماء لبلدتك، مدينتك وبلدك مُتمنيًا لو تكون هناك بين أهلك وأصدقائك حيث تقدِر أن تمُد لهم يد العون والمُساعدة، في اعتقادي أنه بإمكانك تقديم أكثر إذا ما أنت قررت الرحيل والسفر، أضف إلى ذلك أني لم أسمع يومًا عن أحدٍ ما ندِم على سفره. 4- اختر أصدقاءك بعناية واحد من الأمور الأكثر إثارة وتأثيرًا في السفر والتِجوال، وهذا مما حصل معي في كل مكان أقمت فيه، هناك كانت لدي الفرصة للتفكير في كل لحظةٍ مضت من حياتي، وتعكس طبيعة المكان الذي أود العيش فيه، وإلى أي مدىً أنا قريب من وسائل المتعة، الرفاهية والراحة، مُقارنة بما كُنت فيه مُسبقًا، وما هي وتيرة وروتين الحياة التي أرغب أن أعيشها، وحتى مع من أود أن أخرج لأتنزه. لعل من أوضح الأمثلة التي يُمكن ضربها فيما يخص اختيار الأصدقاء المُناسبين، الذين من المُحتمل ألا يكونوا رواد أعمال، أنه في إطار عملك من المُحتمل جدًا أن تسير الأمور في الاتجاه الخاطئ أكثر منها إلى الاتجاه الصائب، أي أنها قد تسوء جدًا في حين انه كان من المفروض لها ان تتحسن، فإذا أردت حقًا النجاح، فمِن المُهم جدًا أن تُحيط نفسك بأولئك المتفائلين الذين من شأنهم أن يُشعروك بالأمان وأنّ ما يحصُل إنما هي أخف الأضرار. 5- ركّز على بناء مُنتج مُفيد يرغب فيه النّاس يُصبحُ الشعور بالحيرة والتوتر أمرًا سهلًا ومُلازمًا لك عندما تبدأ في مشروعك الناشئ، فتبدأ بالتفكير في شريك من خلال دمج مشروعك مع مشروع آخر، أو أن تصرُف أكثر من الميزانية، وأحيانًا قد تتغاضى تمامًا عن أمورٍ تراها أنت جانبية ومن الثانويات وفي الحقيقة هي بالنسبة للآخرين مُهمة ومن الأساسيات. من خلال خبرتي، أستطيع القول إن كُل ما يحتاجه الأمر هو إيجاد مُشكل حقيقي يعاني منه الناس ثم السعي لتبسيطه وحله، فإن أنت وفرت مُنتجًا يحتاجه السوق، فهنيئُا لك فقد نجحت في جذب اهتمام الزبائن لمُنتجك. إذا كان مشروعك الذي تعمل عليه لم ينجح، احرص على أن تُحسنه وتُدخِل عليه أفكارًا جديدة. 6- كُن مُنفتحًا على العالم وكن مسموع الصوت قبل إطلاق Buffer، كانت لدي تجربة مع بعض المشاريع التي لم تُحقق نجاحًا كبيرًا، لكن وبالرغم من ذلك كانت هناك إيجابيات، ولحس الحظ أني كنت حينها، أنشُر تغريدات على تويتر، أحرر مقالات، أشارك في ملتقيات ومؤتمرات، وهناك أتعرف غالبًا على معارف جُدُد. عندما يسألني الناس عن أول خُطوة تسويقية قمت بها في Buffer، الحقيقة التي كان عليّ أن أشاركهم إياها، أنني كنت أعتمد في التسويق على مُشاركة فكرتي مع 1700 مُتابع على تويتر، حينها وظفتُ مبدأ الانفتاح حيث كُنت أرغب من هؤلاء المُتابعين أن يُساعدوني في البدء مع Buffer. حيث كانت النتيجة موافقة تمامًا لنصيحةٍ أتفق فيها كُليًا مع ليث بورسك حين يقول: "شارك فكرتك مع كلِ من تلقاه، تكلم حتى يطلبوا منك أن تخرس، اكتشف أسئلة وعيوب جديدة من شأنها أن تُحسن فكرتك، ثم جِد أشخاصٍ آخرين للتكلم معهم من جديد." ما هي النصيحة أو النصائح التي ترغبون في تقديمها لكل شخص طموح يرغب في إنشاء مشّروع ناشئ؟ ملاحظة: هذا المقال تم استلهامه من Startup Edition كجواب على السؤال: "ما هي النصيحة التي تُقدمونها لرواد الأعمال الناشئين؟" طالعوا تفاصيل أكثر هناك حول هذا الموضوع من طرف فريق رُواد الأعمال رائع. ترجمة -وبتصرّف- للمقال 6 Suggestions for an Aspiring Startup Founder لصاحبه Joel Gascoigne (المُؤسّس الشّريك لـ Buffer)
    1 نقطة
×
×
  • أضف...