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

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

  1. سامح أشرف

    سامح أشرف

    الأعضاء


    • نقاط

      5

    • المساهمات

      2934


  2. Emad Saif

    Emad Saif

    الأعضاء


    • نقاط

      3

    • المساهمات

      205


  3. محمود خليل5

    محمود خليل5

    الأعضاء


    • نقاط

      2

    • المساهمات

      13


  4. Ahmed.Sayed

    Ahmed.Sayed

    الأعضاء


    • نقاط

      1

    • المساهمات

      23


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

المحتوى الأعلى تقييمًا في 04/07/22 in أجوبة

  1. لدي نص يتم الحصول عليه من حقل إدخال ، وأقوم بتحويل هذا النص إلى مصفوفة من الأرقام عبر تقسيمه من خلال فاصلة , comma: <?php $ages = "15,12,24"; $all_ages = explode(',', $ages); var_dump($all_ages); لكن المشكلة أني أحصل على مصفوفة من النصوص strings وليس مصفوفة من الأرقام: array(3) { [0]=> string(2) "15" [1]=> string(2) "12" [2]=> string(2) "24" } كيف أقوم تحويل هذه المصفوفة إلى مصفوفة من الأرقام integers في PHP؟
    2 نقاط
  2. بدأت في رفع مشروع خاص بي مبني بإستخدام لارافيل Laravel على خادم server ولكن بعد إعداد كل الموقع وتثبيت apache .. إلخ، ظهر لي الخطأ التالي عند الدخول إلى الموقع: Error in exception handler: The stream or file "/var/www/laravel/app/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied in /var/www/laravel/bootstrap/compiled.php:8423 أعتقد أن سبب المشكلة خطأ في التصاريح بسبب عبارة "Permission denied" وحاولت تغير صلاحيات المجلد storage من خلال الأمر التالي: chmod -R 775 storage لكن مازال الخطأ موجودًا، كيف أحل هذه المشكلة،؟ هل توجد خطوات أخرى على القيام بها؟
    1 نقطة
  3. سؤال أين تستعمل المخططات التدفقية ما أعرفه أن في البرمجة تستعمل أكواد و ليس أشكال
    1 نقطة
  4. عند إتمام الدورة علوم الحاسوب و إجتياز الإمتحان هل يمكن أن أحصل على شهادة مترجمة للإسبانية
    1 نقطة
  5. حاليًا يتوفر يتوفر شهادة واحدة فقط يمكن الرجوع اليها برابط مباشر على موقع الأكاديمية، ومحتواها يكون باللغتين العربية والانكليزية فقط، يمكنك التواصل مع مركز المساعدة في حال كنت مضطرًا على ذلك وطرح استفسارك
    1 نقطة
  6. خرائط التدفق تُستخدم لعدة أمور تكوين فكرة عامة عن البرنامج , حيث تطبيق البرنامج نفسه عن طريق الاكواد يأخذ وقت كبير نسبيًا لذا نستخدم خرائط التدفق لتنظيم أفكارنا قبل البدأ بكتابة الأكواد فيُصبح الأمر أسهل عند كتابة الأكواد حيث يكون بالفعل لدينا فكرة عما نقوم بتنفيذه مناقشة البرنامج قبل التنفيذ, فكما قلنا سابقًا خرائط التدفق تعطينا فكرة عامة مما يسمح لنا بمناقشة الخوارزمية المقدمة عبر خريطة التدفق وتعديلها قبل الشروع في التنفيذ حتى يكون التعديل أسهل يسهل فهمها بغض النظر عن اللغة, فعند كتابة الشفرة البرمجية بلغة جافا مثلًا أو بايثون لا يسهل قرائتها إلا من قِبل مبرمج جافا أو بايثون, فبالتالي خريطة التدفق يمكن إعتبارها لغة مُوحدة لشرح وتوصيل فكرة البرنامج والخوارزمية بغض النظر عن لغة المبرمج
    1 نقطة
  7. يمكنك إستخدام الوسم firstof الذي يسمح لك بوضع أكثر من شرط في الكود الخاص بك من خلال : {% firstof var1 var2 var3 %} أو يمكنك إستخدام الأسطر الإفتراضية الخاصه بـ Django و هي الأكثر شيوعاً في الإٍستخدام من خلال : {% ?: exp1 exp2 exp3 %} {% ?: exp1 exp2 %} مع إستبدال exp1 - exp2 - exp3 بالشروط التي تريد وضعها في الكود الخاص بك
    1 نقطة
  8. نعم ، يمكنك إستعمال فلتر yesno لحل هذه المشكلة ، وهو بسيط جدًا {{ value|yesno:"yeah,no,maybe" }} هنا إذا كانت قيمة الـ value = true سيقوم بطباعة yeah إذا كانت قيمة value = false سيقوم بطباعة no إذا كانت قيمة value = none سيقوم بطباعة maybe كذلك يمكنك جعلها بهذه الشكل {{ value|yesno:"yeah,no" }} هنا سيتم تحويل الـ none لـ false ، يمكنك الإطلاع أكثر من خلال توثيق django على الفلتر توثيق فلتر yesno من django
    1 نقطة
  9. يمكنك كذلك أن تستعمل الدالة substr على النحو التالي: <?php // النص الأصلي $oldstr = "Hello, World!"; // نُحدد المكان الذي نريد أن نضيف فيه النص الجديد $pos = strpos($oldstr,"World"); // النص الجديد الذي نريد إضافته $str_to_insert = "My "; // نستعمل الدالة substr لتقسيم النص ونقوم بتجميلع بالشكل الذي نريده $str = substr($oldstr, 0, $pos) . $str_to_insert . substr($oldstr, $pos); echo $str; // Hello, My World! بهذا الشكل سوف تحصل على النتيجة المطلوبة، الآن يمكن تحويل الكود السابق إلى دالة ليسهل إستخدامها: <?php function insert_str($original_str, $position, $str_to_insert){ return substr($original_str, 0, $position) . $str_to_insert . substr($original_str, $position); } echo insert_str("Hello, World!", 7, "My "); // Hello, My World! توثيق الدالة substr()‎ في موسوعة حسوب أيضًا يمكنك إستعمال الدالة substr_replace للقيام بهذا الأمر بشكل بسيط على النحو التالي: <?php // النص الأصلي $oldstr = "Hello, World!"; // نُحدد المكان الذي نريد أن نضيف فيه النص الجديد $pos = strpos($oldstr,"World"); // النص الجديد الذي نريد إضافته $str_to_insert = "My "; echo substr_replace($oldstr, $str_to_insert, $pos, 0); // Hello, My World!
    1 نقطة
  10. يمكنك الاستعانة بالوظيفة substr_replace لإستبدال سلسلة نصية معينة ضمن سلسلة أخرى نحددها لها، سنحتاج في هذا التلاعب ببعض الوظائف الأخرى. فيما يلي بعض الخطوات الوصفية: تخزين السلسة النصية الأصلية في متغير. تخزين السلسلة النصية الفرعية في متغير. تخزين الموضع الابتدائي للسلسلة النصية الفرعية. حساب طول السلسلة النصية الفرعية. يعطينا هذا فكرة عن احداثي هاته السلسلة في السلسلة الأم. مثال: تقع World ما بين الموضعين 7 و (موضعها الابتدائي + طولها). نسمي الموضع الأول أ والثاني ب. استبدال ما بين الموضعين أ و ب بالسلسلة النصية المرادة. مثال عملي: <?php // تعريف سلسلة نصية $str = "Hello, World!"; // تعريف السلسلة النصية الفرعية $word = "World"; // تخزين الموضع الابتدائي السلسة النصية الفرعية $pos = strpos($str, $word); // pos + length و pos استبدال ما بين الموضعين $newstr = substr_replace($str, 'My', $pos , strlen($word)); // طباعة النتيجة echo $newstr; // Hello, My! الدالة strpos()‎ في PHP الدالة substr_replace()‎ في PHP
    1 نقطة
  11. لاحظ بعدما تقوم بعملية انشاء السجل ماذا تفعل: return redirect('/team/edit'); مبدئياً في ملف التوجيهات لا يوجد توجيه مُعرف بهذا الشكل إلا: Route::put('/team/{team}',[TeamController::class,'update']); Route::delete('/team/{team}',[TeamController::class,'destroy']); هاذين التوجيهين الميثود الخاصة بهم هي put للأول و delete للثاني، و أنت في هذه الحالة عندما تُعيد توجيه المُستخدم إلى رابط معين يتم طلبه بالطريقة get لذلك ظهرت هذه المُشكلة و ذلك هو شرحها. إن كنت تريد إعادة التوجيه إلى صفحة التعديل فالرابط هو: /team/{team}/edit و ليس: /team/edit يتوجب عليك كتابة: return redirect("/team/{$team->id}/edit"); أو إستخدام التابع back الذي يُعيد المُستخدم الى الصفحة السابقة بما أنها صفحة التعديل. return back();
    1 نقطة
  12. يمكنك التأكد من أنه قد تم إرسال الـ Cookies من خلال أدوات المطورين DevTools ثم تبويبت Application ثم Cookies ثم localhost عليك أيضًا أن تتأكد من أن قيمة $dbt->last_id ليست null وأنها تحتوي على نص أو رقم. مع العلم أن بعد أن تظهر لديك الـ cookie في المتصفح سيمكنك أن تصل إليها من خلال JavaScript طالما أن الخاصية HttpOnly فارغة (غير محددة).
    1 نقطة
  13. يجب التأكد من معلومات الإتصال بقاعدة البيانات مثل اسم المستخدم وكلمة السر واسم قاعدة البيانات الموجودة في الملف env، وكذلك يجب التأكد من أن خادم MySQL يعمل بشكل سليم، كما يجب تهجير البيانات من خلال الأمر التالي: php artisan migrate:fresh --seed ملاحظة الأمر السابق سوف يقوم بحذف البيانات الموجودة في قاعدة البيانات (إن كانت تحتوي على أي بيانات). بعد تنفيذ الأمر السابق يمكن أن تقوم بتشغيل المشروع من خلال الأمر التالي: php artisan serve
    1 نقطة
  14. في لغة SQL يُعد هذا هو السلوك الذي يجب اعتماده عند حذف الكائن المشار إليه. وهذه ليست خاصة في Django نفسه. بل هو جزء من SQL. يتم استخدام on_delete لإخبار Django بما يجب فعله مع النموذج التي تعتمد على كائنات أخرى الذي قمت بحذفه. (على سبيل المثال، علاقة ForeignKey)، مثلًا المنشور الواحد في مدونة ما قد يكون له علاقة ForeignKey مع جدول comments لعرض التعليقات الخاصة بمنشور معين، وهذه الخاصية هي التي تحدد ما الذي سيحدث في حالة حذف المنشور، هل سيتم حذف التعليقات أم إبقائها أم ربما تريد إظهار خطأ يمنعك من حذف أي منشور لديه تعليقات عن طريق الخطأ. وهناك سبعة إجراءات يمكن اتخاذها عند وقوع مثل هذا الحدث (أي عند حذف كائن من جدول ما): CASCADE: عند حذف الكائن المشار إليه، احذف أيضًا الكائنات التي لها مراجع (عندما تقوم بإزالة منشور من مدونة ما على سبيل المثال، قد ترغب في حذف التعليقات الخاصة بهذا المنشور أيضًا).في لغة SQL يتم إستعمال كلمة CASCADE PROTECT: منع حذف الكائن المشار إليه (إن كان هناك أي إشارات له من كائنات أخرى). ولحذفه، سيتعين عليك حذف جميع الكائنات التي تشير إليه يدويًا، في لغة SQL يتم إستعمال كلمة RESTRICT RESTRICT: (تم إضافتها في الإصدار 3.1 من Django)، تشبه الخيار السابق، ولكنها تتبع معيار لغة SQL بشكل أدق، وفي حالة حدوث خطأ يتم عرض خطأ من نوع RestrictedError ، بخلاف PROTECT، تسمح بحذف الكائن المشار إليه إذا كان يشير أيضًا إلى كائن مختلف يتم حذفه في نفس العملية، ولكن عبر علاقة CASCADE. SET_NULL: يتم تعيّن المرجع إلى NULL (يتطلب أن يكون الحقل nullable أي أن قيمة null تساوي True). على سبيل المثال، عندما تحذف مستخدمًا، قد ترغب في الاحتفاظ بالتعليقات التي نشرها في منشورات المدونة، ويتم عرض التعليقات من قِبل مستخدم مجهول أو تم حذفه. في لغة SQL يتم إستعمال كلمة SET NULL SET_DEFAULT: يقوم بتعيين القيمة الافتراضية default. في لغة SQL يتم إستعمال كلمة SET DEFAULT SET(): تقوم بتعيين قيمة معينة. هذا ليس جزءًا من معيار SQL ويتم التعامل معه بالكامل بواسطة Django فقط، وهنا مثال لكيفية إستخدامها من توثيق Django الرسمي: from django.conf import settings from django.contrib.auth import get_user_model from django.db import models def get_sentinel_user(): return get_user_model().objects.get_or_create(username='deleted')[0] class MyModel(models.Model): user = models.ForeignKey( settings.AUTH_USER_MODEL, on_delete=models.SET(get_sentinel_user), ) DO_NOTHING: يتم إستخدامها للإشارة إلى كائن غير موجود بالفعل، وقد تسبب الكثير من المشاكل في قاعدة البيانات مما ينتج عنه مشاكل وأخطاء تظهر للمستخدمين، في لغة SQL يتم إستعمال NO ACTION يمكنك الوصول إلى توثيق كل الخيارات السابقة في وثائق Django من هنا. في أغلب الحالات، CASCADE هو الخيار الأكثر إستخدامًا، ولكن بالنسبة لكل مفتاح ForeignKey، يجب أن تسأل نفسك دائمًا ما هو السلوك المتوقع في هذا الموقف. أحيانًا ما يكون PROTECT و SET_NULL مفيدًا في بعض الحالات. تحتوي الأكاديمية على مقالة (النماذج Models والاستعلام عن البيانات في Django) تمكنك من تجهيز وإعداد نماذج في Django وتتضمن أيضًا عمل علاقة ForeignKey بين النماذج.
    1 نقطة
  15. بإمكانك قراءة توثيق أي مكتبة من خلال الدالة help والتي قد تساعدك كثيرًا في فهم كيفية عمل المكتبة من خلال توثيق مكتوب باللغة الإنجليزية، مما يعطيك لمحة حول الدوال والمتغيرات والأصناف الموجودة في هذه المكتبة، يمكنك أن تقوم بإستخدام الدالة help كالتالي: >>> help('numpy') Help on package numpy: NAME numpy DESCRIPTION NumPy ===== Provides 1. An array object of arbitrary homogeneous items 2. Fast mathematical operations over arrays 3. Linear Algebra, Fourier Transforms, Random Number Generation How to use the documentation ---------------------------- Documentation is available in two forms: docstrings provided with the code, and a loose standing reference guide, available from `the NumPy homepage <https://www.scipy.org>`_. We recommend exploring the docstrings using `IPython <https://ipython.org>`_, an advanced Python shell with TAB-completion and introspection capabilities. See below for further instructions. The docstring examples assume that `numpy` has been imported as `np`:: >>> import numpy as np -- More -- لاحظ أن توثيق أغلب المكتبات كبير للغاية لذلك يتم عرض جزء صغير فقط ويمكنك أن تقوم بعرض المزيد من خلال الضغط على Enter. كما يمكنك أن تستعمل نفس الدالة لقراءة توثيق دالة ميعنة أو صنف معين من خلال كتابة اسم المكتبة ثم اسم الدالة أو الصنف ويفصلهما نقطة، كالتالي: >>> help('numpy.array') Help on built-in function array in numpy: numpy.array = array(...) array(object, dtype=None, *, copy=True, order='K', subok=False, ndmin=0, like=None) Create an array. Parameters ---------- object : array_like An array, any object exposing the array interface, an object whose __array__ method returns an array, or any (nested) sequence. dtype : data-type, optional The desired data-type for the array. If not given, then the type will be determined as the minimum type required to hold the objects in the sequence. copy : bool, optional If true (default), then the object is copied. Otherwise, a copy will only be made if __array__ returns a copy, if obj is a nested sequence, or if a copy is needed to satisfy any of the other requirements (`dtype`, `order`, etc.). order : {'K', 'A', 'C', 'F'}, optional Specify the memory layout of the array. If object is not an array, the newly created array will be in C order (row major) unless 'F' is specified, in which case it will be in Fortran order (column major). If object is an array the following holds. ===== ========= =================================================== -- More -- للخروج من التوثيق يمكنك الضغط على q أو Ctrl + c فقط. ولطباعة محتوى مكتبة معينة يمكنك أن تستعمل دالة open والتابع __file__ لقراءة ملفات المكتبة ثم طبعاتها، كالتالي: >>> import flask >>> f = open(flask.json.__file__, 'r') >>> content = f.read() >>> print(content) بالتأكيد فتح ملفات المكتبة وتصفحها سيكون أفضل وأسهل وأكثر عملية، ويمكنك الحصول على مسار أي مكتبة من خلال التابع __file__ أيضًا كالتالي: >>> flask.__file__ 'C:\\Python38\\lib\\site-packages\\flask\\__init__.py'
    1 نقطة
×
×
  • أضف...