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

محمد أبو عواد

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

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

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

  • عدد الأيام التي تصدر بها

    95

كل منشورات العضو محمد أبو عواد

  1. السبب بسيط وهو أنه لا يمكن للمفتاح الرئيسي أو ما يعرف بprimary key أن يتكرر وهو حقل فريد أي لا يمكن ان تتكرر قيمته, بمعنى آخر لن تجد مستخدمين لهما نفس قيمة primary key, بينما من الممكن ان يتم تكرار الاسم, فمثلا من الممكن أن يكون المستخدم الأول اسمه محمد, والثاني أيضا اسمه محمد, تخيل لو اعتمدنا على الاسم في هذه الحالة, البيانات المسترجعة لأي مستخدم سوف تكون؟ لذلك دائما نعتمد على حقل نكون متأكدين ان قيمته لن تتكرر لكي نسترجع البيانات بشكل صحيح, يمكنك الاعتماد على الايميل أو اسم المتسخدم او أي حقل تكون متأكد انه لن يتكرر , لا مشكلة في ذلك بالتأكيد, الفكرة ليس دائما في استخدام primary key , بل أن نقوم بالاستعلام باستخدام حقل لن تتكرر قيمته بين البيانات
  2. يمكنك استخدام دالة np.where لفعل ذلك كالتالي df['X'] = np.where(df['Y']>=100, 'yes', 'no') في حالتك يمكنك فعله كالتالي import numpy as np df['my_channel'] = np.where(df.my_channel > 100, 0, df.my_channel)
  3. إذا كنت تقصد القيام بتجميع البيانات فيمكنك استخدام ميزات التجميع الخاصة بـ ORM كالتالي from django.db.models import Count result = (User.objects .values('role') .annotate(dcount=Count('role')) .order_by() ) ينتج عن هذا استعلام مشابه لـ SELECT role, COUNT(role) AS dcount FROM users GROUP BY role
  4. حاولي اغلاق cmd واعيدي تشغيله كمسؤول , ثم نفذي الأمر مرة أخرى واخبريني بالنتيحة
  5. Lottie-web هي مكتبة متنقلة لنظام التشغيل iOS والويب تمكن المصممين إنشاء رسوم متحركة رائعة دون الحاجة إلى تعيين مهندس وهذا يعني يمكنك إنشائها يدويا. لديها وثائق ممتازة وتتميز بحسن الأداء ، وسهولة الاستخدام, هناك أيضا مكتبة React Native Animatable, في معظم التطبيقات ، ستلاحظ الشرائح المتكررة والضربات الشديدة والقفز وغيرها من الرسوم, يوفر لك React Native Animatable مكونات معدة مسبقا وذات حركة جيدة ، مما يقلل من الحاجة إلى إعادة كتابة الرسوم المتحركة التي يتم استخدامها بشكل عام بنفسك. يتميز بمجموعة من الرسوم المتحركة سهلة الاستخدام لـ React Native, يمكنك التعرف على طريق الاستخدام وكيفية التعامل مع المكتبات من خلال زيارة المستودع الخاص بهما على موقع github حيث يتوفر شرح رائع وبسيط لكيفية استخدامهما
  6. هذا الخطأ بسبب أنك تستخدمين هذا الرابط أو المستودع مسبقا, هل أنشاتيه بشكل جديد أم مستخدم مسبقا؟
  7. المشكلة في كلمة المرور أو اسم المستخدم المدخلين, أرجو منك التأكد جيدا من صحتهما ثم حاولي مرة أخرى
  8. نعم لانها تشرح اخر الاصدارات واخر التحديثات من التقنيات
  9. ليس المعنى هكذا بانها غير مهمة, بل العكس مهمة جدا وشروحاتها ممتازة ولا تقل جودة عن المسارات الحديثة, ولكن المسارات القديمة تشرح التقنيات بالاصدارات القديمة وأيضا التطبيقات تم تنفيذها بالاصدارات القديمة ولذلك تقوم الأكاديمية بتحديث المسارات كل فترة بما يتناسب مع الاصدارات الحديثة, المقصود بانك لن تحتاجها لأنه سوف يتم شرح كل شيء من البداية مع الاصدارات الحديثة ولذلك لا تحتاج اليها اذا لم تبدأ بها, أي يعني أن المسارات الحديثة تغنيك عن المسارات القديمة
  10. يمكنك استخدام الكود التالي للحصول على اللغة التي حددها المستخدم في متصفحه req.headers["accept-language"]
  11. يرتبط الاختلاف الأساسي بينهما بكيفية ومكان تخزين بيانات الجلسة. تستخدم جلسة ملفات تعريف الارتباط ( cookie-session) أساسا لتطبيقات الجلسة خفيفة الوزن حيث يتم تخزين بيانات الجلسة في ملف تعريف ارتباط ولكن داخل المتصفح ، بينما يخزن Express Session مجرد معرف جلسة داخل ملف تعريف ارتباط في المتصفح ، أثناء تخزين بيانات الجلسة بالكامل على الخادم. تعد جلسة ملفات تعريف الارتباط ( cookie-session) مفيدة في التطبيقات التي لا يتم فيها استخدام قاعدة بيانات في الجزء الخلفي من الموقع. ومع ذلك ، لا يمكن أن تتجاوز بيانات الجلسة حجم ملف تعريف الارتباط. في الحالات التي يتم فيها استخدام قاعدة البيانات ، فإنها تعمل مثل ذاكرة التخزين المؤقت لإيقاف عمليات البحث المتكررة لقاعدة البيانات والتي تكون باهظة الثمن.
  12. يمكنك فعل ذلك باستخدام الدالة reverse كالتالي: myList = ['Python', 'JavaScript', 'HTML', 'CSS'] myList.reverse() print('Reversed List:', myList) سوف يكون الناتج كالتالي Reversed List: ['CSS', 'HTML', 'JavaScript', 'Python']
  13. الفرق الرئيسي بين pygame.display.flip و pygame.display.update هو أن يقوم display.flip () بتحديث محتويات الشاشة بالكامل بينما يسمح display.update () بتحديث جزء من الشاشة ، بدلا من الشاشة بأكملها. عدم تمرير أي حجج ، يتم تحديث العرض بالكامل , لإخبار PyGame بأجزاء الشاشة التي يجب تحديثها ، يمكنك تمرير كائن pygame.Rect واحد ، أو سلسلة منها إلى وظيفة display.update (). يخزن Rect في PyGame عرض وارتفاع بالإضافة إلى إحداثي س و ص للموضع, على سبيل المثال ، تقوم دوال built-in dawning في PyGame ودالة .blit () بإرجاع Rect ، بحيث يمكنك ببساطة تمريرها إلى وظيفة display.update () لتحديث المنطقة المراد تحديثها. نظرا لحقيقة أن display.update () تقوم فقط بتحديث أجزاء معينة من الشاشة بأكملها مقارنة بـ display.flip () ، فإن display.update () تكون أسرع في معظم الحالات.
  14. المشكلة في حزمة @popperjs/core , انتي تستخدمين الاصدار الخامس من بوتستراب وهي تعتمد على الحزمة @popperjs/core , لذلك يجب تثبيتها من خلال الأمر التالي npm install @popperjs/core أيضا في ملف index.js يجب الانتباه الى ترتيب الملفات, فمثلا يجب استدعاء jquery قبل استدعاء بوتستراب , وايضا استدعاء popperjs قبل بوتستراب, لاحظي import 'bootstrap/dist/js/bootstrap.min.js'; import 'jquery/dist/jquery.min'; import 'popper.js/dist/popper.min'; أرحو منك ترتيب الملفات كالتالي import 'jquery/dist/jquery.min'; import 'popper.js/dist/popper.min'; import 'bootstrap/dist/js/bootstrap.min.js';
  15. اذا كنت تستخدم اطار عمل express يمكنك فعل ذلك من خلال استخدام timeoute كالتالي var server = app.listen(app.get('port'), function() { debug(server.address().port); }); server.timeout = 1000; إذا كنت لا تستخدم express ، فإن المبدأ هو نفسه, يمكنك فعل ذلك كالتالي var http = require('http'); var server = http.createServer(function (req, res) { setTimeout(function() { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }, 200); }).listen(1337, '127.0.0.1'); server.timeout = 20; console.log('Server running at http://127.0.0.1:1337/');
  16. لا أستطيع معاينة وحل المشكلة باستخدام الخطأ المرفق, هل يمكنك ارفاق ملفات المشروع لمعاينة المشروع والمساعدة في حلها؟
  17. هناك بعض الاختلافات بين OneToOneField و ForeignKey . كما ورد في الدليل النهائي لـ Django OneToOneField علاقة one-to-one . من الناحية المفاهيمية ، هذا مشابه لـ ForeignKey مع unique=True ، ولكن الجانب العكسي من العلاقة سيعيد كائن واحد بشكل مباشر. بالتباين مع علاقة OneToOneField العكسية تقوم علاقة ForeignKey العكسية بإرجاع QuerySet. على سبيل المثال ، إذا كان لدينا النموذجان التاليان نموذج car يستخدم OneToOneField نموذج Car2 يستخدم ForeignKey مع unique=True مثال OneToOneField from testapp.models import Car, Engine c = Car.objects.get(name='Audi') e = Engine.objects.get(name='Diesel') e.car <Car: Audi> مثال ForeignKey مع unique=True from testapp.models import Car2, Engine2 c2 = Car2.objects.get(name='Mazda') e2 = Engine2.objects.get(name='Wankel') e2.car2_set.all() [<Car2: Mazda>] كود النموذج from django.db import models class Engine(models.Model): name = models.CharField(max_length=25) def __unicode__(self): return self.name class Car(models.Model): name = models.CharField(max_length=25) engine = models.OneToOneField(Engine) def __unicode__(self): return self.name class Engine2(models.Model): name = models.CharField(max_length=25) def __unicode__(self): return self.name class Car2(models.Model): name = models.CharField(max_length=25) engine = models.ForeignKey(Engine2, unique=True, on_delete=models.CASCADE) def __unicode__(self): return self.name
  18. نعم يمكنك فعل ذلك باستخدام الوراثة (extends) , لننشئ الكلاس B أولا class B { int num; public void setNum(int n){ this.num=n; } public int getNum(){ return this.num; } } ثم لننشئ الكلاس A ونجعله يرث من الكلاس B كالتالي public class A extends B { } الآن لننشئ دالة main بداخل الكلاس A وننشئ كائن من الكلاس A public class A extends B { public static void main(String[] args) { A a = new A(); } } لنحاول باستخدام الكائن a الوصول للخصائص الموجودة في الكلاي B , سوف نضع قيمة للمتغير num ثم نطبعها, فيكون شكل الكود كالتالي public class A extends B { public static void main(String[] args) { A a = new A(); a.setNum(1); System.out.println(a.getNum()); } } سوف تكون النتيحة 1
  19. لا غير مؤهلة لسوق العمل,ولكنها لا تقل أهمية عن باقي الدورات, تعبتر حجر الأساس لعالم البرمجة بشكل خاص والحاسوب بشكل عام, لذلك اذا كانت مهارتك ضعيفة في التعامل مع الحاسوب وأنظمته ولا تمتلك أي أفكار عن البرمجة فيجب أن تكون أول دورة تشترك فيها, لأنها كما قلت حجر الأساس لباقي الدورات وسوف تجعل الامر أسهل وأبسط بكثير
  20. لا أجد أي أخطاء في الكود, حاول استخدام Dom في تحديد العنصر كالتالي document.getElementById("messages").reset(); أو حاول استخدام trigger كالتالي $('messages').trigger("reset");
  21. لا هذا غير مسموح به في جافا , لن يكون من المنطقي السماح بالوراثة المتعددة, ولكن يمكنك فعل ذلك بطريقة ما كالتالي public abstract class Y {...} public abstract class Z extends Y{...} public class X extends Z {...} كما تلاحظي قمت بانشاء كلاس مجرد اسمه Y ثم انشأت كلاس مجرد اسمه Z يرث من الكلاس المجرد Y , ثم أنشأت كلاس X يرث من الكلاس المجرد Z , تحصيل حاصل يرث من Y, يمكنك فعل ذلك من خلال هذه الطريقة
  22. تستطيع استخدام filter لتحديد الأعمدة التي تحتوي على كلمة hello كالتالي df.filter(like='hello') ولتحديد الصفوف عن طريق المطابقة الجزئية للسلسلة تحتاج لتمرير المتغير axis واسناد القيمة صفر اليه كالتالي df.filter(like='hello', axis=0) سوف يتم تحديد الصفوف التي تحتوي على كلمة hello
  23. كل دورة في الأكاديمية مستقلة بذاتها وغير مرتبطة بأي من الدورات, كل دورة تحتوي على العديد من المسارات, عند شرائك لأي دورة تصبح جميع مسارات هذه الدورة مفتوحة وتستطيع الوصول لها, وأيضا تستطيع الوصول للمسارات المؤرشفة لهذه الدورة, هذا ما يحدث اذا اشتركت في دورة واحدة, اذا لديك المزيد من الأسئلة والاستفسارات يمكنك التواصل مع الدعم من خلال الرابط التالي أو يمكنك ايجادها في الأسئلة الشائعة هنا
  24. في هذه الحالة يمكنك استخدام طريقتين لفعل ذلك, بداية نقوم بحذف المسافات الجانبية باستخدام trim ونقوم بحفظ الناتج في متغير على سبيل المثال اسمه day1 var day1 = day.trim(); الطريقة الاولى أن نقوم بتكبير الحرف الاول ثم نقوم باضافته الى باقي أحرف الكلمة باستخدام علامة + واستثناء الحرف الاول من المتغير day1 كالتالي day1.charAt(0).toUpperCase()+ day1.slice(1); الطريقة الثانية أن نقوم بعمل function وظيفتها أن تقوم بتقسيم الكلمة الممرة لها وعمل حلقة تكرار على احرف الكلمة وبداخل حلقة التكرار نقوم بتكبير الحرف الاول وعمل join للحروف كالتالي function firstUpperCase(str) { var splitStr = str.toLowerCase().split(' '); for (var i = 0; i < splitStr.length; i++) { splitStr[i] = splitStr[i].charAt(0).toUpperCase() + splitStr[i].substring(1); } return splitStr.join(' '); } تستطيع تخزين القيمة المرجعة من الفنكشن في متغير وطباعته كالتالي var dd = firstUpperCase(day1) console.log(dd)
  25. يمكننا ازالة المسافات الجانبية باستخدام الدالة trim , ثم يمكننا تحديد الحرف الاول من الكلمة باستخدام charAt وتحويله الى حرف كبير باستخدام الدالة toUpperCase() كالتالي day.trim().charAt(0).toUpperCase() سوف يكون الناتج حرف F , لا يمكنك اجراء الدالتين في سطرين منفصلين, ويجب اجراءهما معا بالتتابع في نفس السطر لأنك اذا حاولت تنفيذ كل دالة في سطر منفصل سوف يتم التعامل مع المتغير day بصورته الأصلية , بمعنى اذا قمت بتنفيذ الدالة trim على المتغير day فسوف يكون الناتج "friday" واذا حاولت تنفيذ الدالة charAt مع toUpperCase في سطر منفصل فسوف يكون الناتج الحرف الأول من المتغير day وهو مسافة " " لذلك يجب تنفيذ الدالتين بالتتابع في نفس السطر , أرو يمكنك حفظ نتيجة تنفيذ الدالة trim في متغير آخر مثلا ليكون اسمه day1 , ثم يمكنك تنفيذ الدالة charAt مع toUpperCase عليه كالتالي day1=day.trim() => //"friday" day1.charAt(0).toUpperCase() =>//"F"
×
×
  • أضف...