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

Ayoub Souad

الأعضاء
  • المساهمات

    33
  • تاريخ الانضمام

  • تاريخ آخر زيارة

آخر الزوار

لوحة آخر الزوار معطلة ولن تظهر للأعضاء

إنجازات Ayoub Souad

عضو مساهم

عضو مساهم (2/3)

6

السمعة بالموقع

6

إجابات الأسئلة

  1. إذا أردت استعمال وظيفة SPLICE يمكنك استعمال حلقة WHILE و لكن بداية من آخر عنصر: let mix = [1, 2, 3, "M", 4, "o", "h", "a", "m", 5, "d",6,"d"]; i = mix.length; // نـأخذ طول اللائحة while (i--) { // حلقة تبدأ من العنصر الأخير إلى العنصر اﻷول if (!isNaN(mix[i])) mix.splice(i, 1); // اذا كان العنصر رقما نحذفه انطلاقا من مؤشره } console.log(mix); // طباعة اللائحة يمكنك ملاحظة الفرق باستعمال تقنية الحلقة العكسية التي قمنا بها بحيث المخرج هو: [ 'M', 'o', 'h', 'a', 'm', 'd', 'd' ] للتعرف أكثر على SPLICE التي تحذف عنصر انطلاقا من مؤشره من هنا
  2. && يقوم بعملية مقارنة منطقية في حين & يقوم بعملية مقارنة للأعداد الثنائية binary للعبارتين الفرق بين && و & هو :أن الـ compiler في حالة && يقوم باختبار العبارة الأولى إذا كانت خاطئة لايمر على العبارة الأخرى لأن الـ and يجب أن تكون كلتا العبارتين true فإذا كانت إحدى العبارتين false لاداعي لمرور الـ compiler للعبارة الأخرى. ولكن في حالة & يمر الـ compilerعلى العبارة الثانية حتى وإن كانت العبارة الأولى false ، لذلك من الأفضل استخدام && بدل &.
  3. غالبًا ما تكون هناك حالة تحتاج فيها إلى إضافة ترقيم الصفحات إلى جميع views التي تُرجع مجموعات querysets أو list. يمكنك استخدام فئة توجيه مضمنة (RouterPaginated) تقوم تلقائيًا بحقن ترقيم الصفحات لجميع العمليات التي حددت response=List[SomeSchema]: from ninja.pagination import RouterPaginated router = RouterPaginated() #انشاء الوظيفة التي تحقن الترقيم @router.get("/items", response=List[MySchema]) #تطبيق المزخرف على العمليات # التي حددت الاستجابة كقائمة def items(request): return MyModel.objects.all() #استخراج جمبيع الكائنات #نفس التطبيق على عملية أخرى @router.get("/other-items", response=List[OtherSchema]) def ohter_items(request): return OtherModel.objects.all() في هذا المثال ، سيتم تمكين ترقيم الصفحات في كلتا العمليتين. لتطبيق ترقيم الصفحات على مثيل api الرئيسي ، استخدم وسيطة default_router: api = NinjaAPI(default_router=RouterPaginated())
  4. يمكنك استعمال مكتبة جاهزة django-ratelimit و التي ستحد عدد الطلبات التي تتلقاها خلال فترة زمنية معينة. و ذلك كالآتي: from ratelimit.decorators import ratelimit @ratelimit(key='ip', rate='10/m') #تحديد عدد الطلبات 10في الدقيقة مثلا def myview(request): return HttpResponse() حيث أن المقدارKey يمكن أن يأخد شكل: 'ip' أي أنك تحد نفس عنوان IP للطلب 'get:X' تستخدم قيمة request.GET ['X'] 'post:X' تستخدم قيمة request.POST ['X'] 'user' تستخدم قيمة مناسبة من request.user. لا تستخدم مع المستخدمين غير المصادق عليهم. 'user_or_ip' تستخدم قيمة مناسبة من request.user إذا تمت المصادقة على المستخدم. المقدارrate يمكن أن يأخد شكل: s - ثواني m - دقائق h - ساعات d - أيام لتثبيت المكتبة pip install django-ratelimit
  5. غيت هاب‏ هي شركة تابعة لمايكروسوفت توفر استضافة لتطوير البرامج والتحكم في الإصدار باستخدام Git. توفر الشركة وظائف التحكم في الإصدار الموزع وإدارة كود المصدر (SCM) لـ «Git»، بالإضافة إلى ميزاته الخاصة. يوفر النظام التحكم في الوصول والعديد من ميزات التعاون مثل تتبع الأخطاء وطلبات الميزات البرمجية وإدارة المهام والتركيب المتواصل ومواقع ويكي لكل مشروع جيت هاب. تُستخدم حسابات جيت هاب المجانية بشكل شائع لاستضافة مشاريع مفتوحة المصدر. ستجد فيه مشاريع برمجة جاهزة كما يمكنك تخزين مشارعك أو مشاركتها فيه. كل ما عليك هو استعمال Git للقيام بالأوامر من جهازك نحو Github. أولا تعرف على أساسيات Git من هنا. كما أنك ستجد مجموعة دلائل استعماله باللغة العربية من هنا.
  6. المرجو تقديم تفاصيل اكثر مثلا لغة البرمجة و كود الصفحة التي تستعملها و قصدك بموقعه
  7. حدد سبان داخل الايقونة: <span>Click me</span> ثم استعمل التابع toBeDisabled للتحقق من كونها disabled import { render } from '@testing-library/react'; const { getByText } = render(Button); expect(getByText(/Click me/i).closest('button')).toBeDisabled(); //التحقق من الأيقونة للتعرف على مكتبة الاختبار ل React يمكنك زيارة الصفحة من هنا
  8. يحبد استعمال لغة باكاند للقيام بذلك مثلا php في ملف html اربط action بemail.php <form method="post" action="email.php"> .... </form> ثم ملف email.php <?php mail('youremail@example.com', $_POST['subject'], $_POST['message']); //ارسال الى البريد ?> <p>Your email has been sent.</p> ايضا توجد طريقة في HTML لكنها تكتفي بإنشاء بريد إلكتروني معبأ مسبقًا بالحقول الموجودة في <form>، يمكنك تحديد mailto: address في سمة [action] لعنصر <form>. <form action="mailto:youraddr@domain.tld" method="GET"> <!-- تحديد البريد المراد الارسال اليه --> . . . . </form> ما سيفعله هذا هو السماح للبريد الإلكتروني للمستخدم بإنشاء بريد إلكتروني معبأ مسبقًا بالحقول الموجودة في <form>. و لكن لا يرسل مباشرة
  9. يمكن ذلك عن طريق استعمال مكتبة random بحيث يتم توليد مؤشرات عشوائية و استعمالها في حفظ العنصر و اضافته الى اللائحة import random arr=[1,2,3,4,5,6] n=len(arr)-1 for i in range(n): random_index = random.randint(0, n) #خلق قيم عشوائية بين 0 و ن temp = arr.pop(random_index) # ترجع العنصر الموجود في المؤشر المحدد arr.append(temp) # اضافته الى اللائحة print(arr) المخرج: [2, 3, 6, 1, 5, 4]
  10. تم تصميم طريقة splitlines () ليعطيك قائمة تحتوي على كل سطر >>>long_str.splitlines() >>>['line 1', 'line 2', 'line 3', 'line 4'] يعيد التابع قائمة من الأسطر التي تكوّن السلسلة النصية، وتجري عملية التقسيم عند حدود الأسطر، ولا تُدرج فواصل الأسطر في القائمة المعادة إلا إذا أخذ المعامل keepends القيمة True. >>> 'ab c\n\nde fg\rkl\r\n'.splitlines() ['ab c', '', 'de fg', 'kl'] >>> 'ab c\n\nde fg\rkl\r\n'.splitlines(keepends=True) ['ab c\n', '\n', 'de fg\r', 'kl\r\n'] لقراءة المزيد عن هذه الطريقة تجد توثيق مفيد باللغة العربية من هنا
  11. من الجيد اذا التوجه نحو تعلم تصميم واجهة المستخدم بحيث ستقن التناسق بين الالوان و الاحجام وعموما مبادئ التجانس والمعايير في تصميم واجهة المستخدم و التي ستجدها في رابط المقالات الذي ذكرته. يمكنك الاعتماد على برنامج Figma فهو يسهل المأمورية بحيث يساعدك على انشاء تصميمك الخاص.
  12. يجب أن تتلقى دروس عن تصميم الواجهات بحيث تكتسب مختلف التقنيات و التناسق من حيث لتصميم. بامكانك الدخول على دورة حسوب في تطوير واجهات التصميم تطوير واجهات المستخدم كما يمكنك الاطلاع على مقالات تصميم UI من هنا.
  13. لضمان فتح الرابط في نفس علامة التبويب ، يمكن استخدام window.location.replace () : window.location.replace("http://academy.hsoub.com"); هذه الوظيفة لن تسمح بتسجيل الصفحة في history
  14. ربما تكون أسهل طريقة هي مجرد تقسيم النص الى عبارات انطلاقا من كلمة محددة باستعمال وظيفة split. الوظيفة هي: str.split(sep, maxsplit) استخدم الوسيطة sep لتحديد مكان حدوث الانقسام. استخدم وسيطة maxsplit لتحديد عدد الانقسامات. my_str = "hello,world! I'm a programmer" print(my_str.split("world",1)[1]) # قسمنا السلسلة عبر كلمة ة وورلد و حددنا عدد الانقسامات في واحد ثم أخذنا العنصر المحصل عليه الثاني لقراءة المزيد عن هذه الوظيفة من هنا
  15. حساب الفرق بين تاريخين ناتجه ب ميلي ثواني اذا لحساب الايام نقوم بقسمته على عدد ميلي الثواني في يوم واحد. const oneDay = 24 * 60 * 60 * 1000; // hours*minutes*seconds*milliseconds const date1 = new Date(2022, 1, 1); const date2 = new Date(2023, 1, 1); const diffDays = Math.round(Math.abs((firstDate - secondDate) / oneDay)); // حساب الفرق باﻷيام console.log(diffDays) //طباعة الفرق
×
×
  • أضف...