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

Mustafa Suleiman

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

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

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

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

    340

كل منشورات العضو Mustafa Suleiman

  1. أفضل طريقة لإضافة حقول إلى نموذج المستخدم هي القيام بذلك في بداية المشروع قبل أي عملية migration، ولكن إن كنت قد بدأت بالفعل في إنشاء عمليات الهجرة، فهناك بعض الطرق التي يمكنك من خلالها إضافة حقول إلى نموذج المستخدم بعد ذلك. الطريقة الأولى: إنشاء نموذج المستخدم واستبدال نموذج المستخدم الافتراضي من Django عن طريق فتح ملف models.py الخاص بتطبيق Django لديك وقم بإنشاء نموذج المستخدم. ولإنشاء نموذج مستخدم جديد يسمى MyUser مع حقل جديد يسمى profile_picture لصورة الملف الشخصي، عليك إضافة السطر التالي إلى ملف models.py: class MyUser(AbstractUser): profile_picture = models.ImageField(upload_to='profile_pictures', blank=True) بعد ذلك، يجب عليك إنشاء هجرة جديدة لتحديث قاعدة البيانات. للقيام بذلك، استخدم الأمر التالي: python manage.py makemigrations ثم قم بتشغيل الهجرة باستخدام الأمر التالي: python manage.py migrate الطريقة الثانية: تعديل نموذج المستخدم الافتراضي من Django وإضافة الحقول الجديدة من خلال فتح ملف models.py وابحث عن نموذج المستخدم الافتراضي AbstractUser. ثم أضف الحقول الجديدة إلى نموذج المستخدم. ولإضافة حقل جديد يسمى profile_picture لصورة الملف الشخصي، تستطيع إضافة السطر التالي إلى نموذج المستخدم: profile_picture = models.ImageField(upload_to='profile_pictures', blank=True) بعد ذلك، يجب عليك إنشاء هجرة جديدة لتحديث قاعدة البيانات. للقيام بذلك، استخدم الأمر التالي: python manage.py makemigrations ثم قم بتشغيل الهجرة باستخدام الأمر التالي: python manage.py migrate الطريقة الثالثة: إنشاء نموذج حقل إضافي وربطه بنموذج المستخدم من خلال التوجه لملف models.py وابحث عن نموذج المستخدم الافتراضي AbstractUser. ثم أضف حقل profile_picture إلى نموذج المستخدم. ولإضافة حقل جديد يسمى profile_picture لصورة الملف الشخصي، نضيف السطر التالي إلى نموذج المستخدم: profile_picture = models.OneToOneField( 'profile.Profile', null=True, blank=True, ) ثم قم بإنشاء نموذج جديد يسمى Profile مع حقل image لصورة الملف الشخصي، ولإنشاء نموذج جديد يسمى Profile مع حقل image لصورة الملف الشخصي، عليك إضافة الكود التالي إلى ملف models.py: class Profile(models.Model): image = models.ImageField(upload_to='profile_pictures', blank=True) class Meta: abstract = True بعد ذلك، يجب عليك إنشاء هجرة جديدة لتحديث قاعدة البيانات ثم قم بتشغيل أمر التهجير.
  2. مكتبة OpenCV تحتوي على مجموعة واسعة من الدوال الخاصة بالصور، والتي يمكن استخدامها لأداء مجموعة متنوعة من المهام، مثل: قراءة الصور وعرضها معالجة الصور تحليل الصور التعرف على الصور وإليك شرح تفصيلي لبعض الدوال الخاصة بالصور في مكتبة OpenCV، مع أمثلة: 1- قراءة الصور وعرضها. تستخدم الدوال التالية لقراءة الصور وعرضها: imread(): تستخدم لقراءة صورة من ملف. imshow(): تستخدم لعرض صورة على شاشة. waitKey(): تستخدم للانتظار حتى يضغط المستخدم على أي مفتاح. import cv2 # قراءة الصورة image = cv2.imread("image.jpg") # عرض الصورة cv2.imshow("Image", image) # الانتظار حتى يضغط المستخدم على أي مفتاح cv2.waitKey(0) 2- معالجة الصور تستخدم الدوال التالية لمعالجة الصور: cvtColor(): تستخدم لتحويل صيغة الصورة. resize(): تستخدم لتغيير حجم الصورة. flip(): تستخدم لقلب الصورة. threshold(): تستخدم لتطبيق حد على الصورة. import cv2 # قراءة الصورة image = cv2.imread("image.jpg") # تحويل الصورة إلى صيغة رمادية gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # عرض الصورة الرمادية cv2.imshow("Gray image", gray_image) # الانتظار حتى يضغط المستخدم على أي مفتاح cv2.waitKey(0) 3- تحليل الصور تستخدم الدوال التالية لتحليل الصور: findContours(): تستخدم للعثور على حدود الأشكال في الصورة. matchTemplate(): تستخدم للبحث عن نمط معين في الصورة. HoughCircles(): تستخدم للعثور على الدوائر في الصورة. import cv2 # قراءة الصورة image = cv2.imread("image.jpg") # العثور على حدود الأشكال contours, hierarchy = cv2.findContours(image, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) # عرض حدود الأشكال for contour in contours: cv2.drawContours(image, contour, -1, (0, 255, 0), 2) # عرض الصورة مع حدود الأشكال cv2.imshow("Image with contours", image) # الانتظار حتى يضغط المستخدم على أي مفتاح cv2.waitKey(0) 4- التعرف على الصور تستخدم الدوال التالية للتعرف على الصور: haarcascade_frontalface_default(): تستخدم للتعرف على الوجوه. haarcascade_eye_tree_eyeglasses(): تستخدم للتعرف على العيون. svm_frontalface_alt(): تستخدم للتعرف على الوجوه باستخدام التعلم الآلي. import cv2 # تحميل مصفوفة هارس لتعرف الوجوه face_cascade = cv2.CascadeClassifier("haarcascade_frontalface_default.xml") # قراءة الصورة image = cv2.imread("image.jpg") # العثور على الوجوه في الصورة faces = face_cascade.detectMultiScale(image, 1.3, 5) # رسم إطارات حول الوجوه for (x, y, w, h) in faces: cv2.rectangle(image, (x, y), (x + w, y + h), (255, 0, 0), 2) # عرض الصورة مع الوجوه cv2.imshow("Image with faces", image) # الانتظار حتى يضغط المستخدم على أي مفتاح cv2.waitKey(0) المستند الرسمي: https://docs.opencv.org/4.x/db/deb/tutorial_display_image.html
  3. حاولي تثبيت مكتبتي libpq-dev و python-dev من خلال الأمر التالي أو إضافتها إلى ملف requirements.txt: sudo apt install python3-dev libpq-dev
  4. لا أستطيع معرفة السبب على وجه التحديد دون تفقد الحاسوب، لذلك من الأفضل والأسهل للجميع استخدام خدمة سحابية مثل Google drive أو onedrive لمزامنة ومشاركة الملفات وهي الخيار الأفضل في حال توفر إنترنت. أو حاول إعادة تثبيت نسخة الويندوز للحسوب الذي يوجد به مشكلة، ولكن قبل ذلك، حاول مشاركة ملف آخر وتفقد هل المشكلة مستمرة أيضًا؟
  5. مشكلة انتهاء الصلاحية في نموذج Carts.js لديك هي أنك تستخدم قيمة ثابتة لـ expires، والتي هي 10، مما يعني أن العنصر سينتهي صلاحيته بعد 10 ثوانٍ. عليك استخدام قيمة زمنية لـ expires، مثل: expires: new Date(Date.now() + 1000 * 60 * 60 * 24) // 24 ساعة استخدام قيمة زمنية للمؤشر index، مثل: index: { expireAfterSeconds: 3600 // 1 ساعة } أو استخدام قيمة زمنية للمؤشر index، مثل: index: { expireAfterSeconds: 3600 // 1 ساعة } أما بالنسبة لمشكلة التداخل، فهذا يحدث لأنك تقوم بإنشاء عنصر جديد في كل مرة تقوم فيها بإضافة منتج إلى السلة. وحل هذه المشكلة عن طريق تحديث العنصر الموجود بدلاً من إنشاء عنصر جديد بتغيير الكود في index.js كما يلي: if (cart) { var indexOfProduct = -1; for (var i = 0; i < cart.selectedProduct.length; i++) { if (product_id === cart.selectedProduct[i]._id) { indexOfProduct = i; break; } } if (indexOfProduct >= 0) { // console.log(cart.selectedProduct[indexOfProduct]); cart.selectedProduct[indexOfProduct].quantity++; cart.selectedProduct[indexOfProduct].price += newproductPrice; cart.selectedProduct[indexOfProduct].price = Math.round(cart.selectedProduct[indexOfProduct].price * 100) / 100; cart.totalquantity++; cart.totalPrice += newproductPrice; cart.totalPrice = Math.round(cart.totalPrice * 100) / 100; cart.createAt = Date.now(); Carts.updateOne({ _id: cartId }, { $set: cart }) .catch((err) => { console.log(err) }) .then((result) => { console.log('update:', result); console.log('cart-update: ', cart); }) } else { cart.totalquantity++; cart.totalPrice += newproductPrice; cart.totalPrice = Math.round(cart.totalPrice * 100) / 100; cart.selectedProduct.push(newProduct); cart.createAt = Date.now(); Carts.updateOne({ _id: cartId }, { $set: cart }) .catch((err) => { console.log(err) }) .then((result) => { console.log('add:', result); console.log('cart-add: ', cart); }) } } من أجل تحديث العنصر الموجود في حالة وجوده، أو إنشاء عنصر جديد إذا لم يكن موجودًا.
  6. هل قمتي بإتباع الطريقة الأولى واستخدام مكتبة psycopg2-binary==2.8.5؟
  7. السبب هو أنك كتبت console بشكل غير صحيح عليك تصحيحها لتصبح console وليس comsole وإذا كان السؤال متعلق بأحد الدورات، أرجو منك التعليق أسفل فيديو الدورة لمساعدتك بشكل أفضل.
  8. بالطبع لا عليك دراسة اللغات الأساسية للواجهة الأمامية أيضًا، ولكن لا مشكلة في عدم التعمق بهم والتركيز عليهم، طالما أنك تريد التخصص في الواجهة الخلفية فقط بعد إنتهاء الدورة.
  9. لا مشكلة، لكن بشرط التطوير على المشروع وليس نسخه كما هو وأيضًا تعديل الواجهة وتصميم واجهة خاصة بك، ويجب قراءة شروط استخدام الكود سواء كان ذلك من خلال مستودع المشروع على GitHub أو أيًا كان مصدره.
  10. لا مشكلة فالكود متاح للجميع من أجل الأغراض التعليمية فقط، وليس الاستخدام التجاري، أي لا تقوم بنقل المشروع بالكامل واستخدامه بشكل تجاري، بل عليك التعديل عليه والتطوير. وإذا كان الكود بسيط أو جزء من المشروع فلا مشكلة تستطيع استخدامه في مشروعك.
  11. أغلبها موجود بالفعل، والبعض منها متقدم نسبيًا لذلك عليك بالبحث عنه على يوتيوب ودراسته لكن بعد إنتهاء الدورة عليك التركيز على ذلك. وفي الدورة لا يوجد مسار محدد للـ Back-End فقط، بل يتم شرح أساسيات Node.js وتنفيذ واجهة برمجية API لتقييم الأفلام للتطبيق على ما node.js وexpress.js. بعد ذلك يتم تنفيذ مشاريع كاملة Full-Stack من خلال React و Express.js، لذلك عليك دراسة الدورة بشكل كامل ثم التخصص في الواجهة الخلفية إذا أردت.
  12. حاول تعطيل مشاركة الملف ثم تفعيل المشاركة مرة أخرى على الجهاز الأساسي الذي يوجد به ملف، ثم تجربة تصفح الملف مرة أخرى من الحاسوب الذي به المشكلة لكن يجب إعادة تشغيله قبل ذلك. وإذا استمرت المشكلة، فمن الأسهل مشاركة الملف من خلال Google drive مثلاً من خلال خاصية Shared With Me، أو من خلال onedrive وهو أفضل لكونه من مايكروسوفت ومتوافق بشكل كامل مع ملفات الأوفيس.
  13. حاولي أولاً القيام بالتالي حيث يظهر لديك رسالة خطأ Error: pg_config executable not found: في ملف requirements.txt عليك استبدال مكتبة psycopg2 بالتالي: psycopg2-binary==2.8.5 وفي حال استمرار المشكلة عليك القيام بالتالي حيث أن سبب مشكلة Error: pg_config executable not found عند محاولة نشر مشروع على AWS هو أن ملف الإعدادات لقاعدة البيانات pg_config غير موجود في متغير البيئة $PATH من خلال الأمر التالي: python setup.py build_ext --pg-config /path/to/pg_config وعليك استبدال /path/to/pg_config بالمسار الصحيح لملف pg_config في مشروعك. حاولي إيجاد مسار الملف من خلال الأمر التالي: which pg_config ولحل هذه المشكلة بشكل دائم على Elastic Beanstalk، تستطيعي إنشاء ملف نصي يسمى 10_install_dependencies.sh في مجلد .platform/hooks/prebuild، وسيؤدي الملف إلى إضافة مجلد يحتوي على برنامج pg_config إلى متغير البيئة $PATH قبل إنشاء مكتبة psycopg2. #!/usr/bin/sh export PATH=$PATH:/path/to/pg_config python setup.py build_ext
  14. الأيقونة واسم الطالب سيكونون بداخل عنصر أب وضعنها له تنسيق ليصبح flexbox ثم بداخله نقوم بكتابة ما نريد وأيضًا وضع الأيقونة كالتالي: <div id="branding" style="flex-grow: 8"> <h1><a href="index.html"><i class="fa fa-user-circle"></i> صفحة <sapn class="highlight">اسم الطالب</sapn></a> </h1> </div> وخاصية flex-grow في CSS تستخدم لتحديد مدى توسع العناصر المرنة (flex items) داخل العنصر الأب (flex container) بالنسبة للمساحة المتاحة، والقيمة التي تم تعيينها لـ flex-grow تحدد النسبة المئوية للمساحة المتاحة التي ستستخدمها العناصر المرنة داخل العنصر الأب. حيث تم تعيين flex-grow: 8 لعنصر <div> الذي لديه id "branding"، مما يعني أن العنصر سيكون مستعدًا لاستخدام مساحة أكبر بنسبة 8 مرات من العناصر الأخرى داخل العنصر الأب إذا كان هناك مساحة إضافية متاحة. وبالنسبة لكيفية استخدام أيقونات Font Awesome فقد تم توضيح ذلك هنا:
  15. أتفهم القلق الذي تشعر به وهو أمر طبيعي لأنك ما زلت في بدايات تعلم البرمجة، وبإختصار لا داعي لما تشعر به من تخوف، الفكرة هي أن الذكاء الاصطناعي ما هو إلا مجرد أداة لتنفيذ مهام وأجزاء من المشروع الذي تعمل عليه أو مساعدتك في فهم واستيعاب أمرًا ما أو شرح كيفية تنفيذ أمرًا ما. لكن هل يعتمد عليه في تنفيذ مشروع كامل؟ الإجابة هي لا حتى الآن، والدراسات تشير إلى أنه سيتم أتمتة 70% من عملية تطوير الواجهة الأمامية بحلول 2027، لكن هل ذلك حقيقي؟ لا أحد يعلم حقيقة الأمر، فمن المفترض أن نمتلك بين أيدينا عربات طائرة حيث كان متوقع ذلك فيما سبق! وفي حال تحقق ذلك، ما عليك هو التركيز على الأساسيات وتعميق فهمك واستخدام كافة الأدوات التي تساعدك على الإنتاجية بشكل أفضل وتوفير جهدك وتركيزك للمهام الصعبة والتي تتطلب خبرة ومعرفة لا تمتلكها تلك الأدوات. والتجربة خير دليل، حاول تجربة إنشاء مشروع من خلال تلك الأدوات ولن تستطيع، وبالطبع أنا لا أتحدث عن منصات الـ no code أو Low code. وقد تم التفصيل هنا:
  16. المواقع الإلكترونية يمكن أن تتكون من صفحة html واحدة فقط، أو من عدة صفحات، ويعتمد ذلك على طبيعة الموقع وحجمه وأهدافه صفحة html الواحدة صفحة html الواحدة هي أبسط شكل للموقع الإلكتروني، وتتكون الصفحة من ملف واحد يحتوي على كل محتوى الموقع، بما في ذلك النصوص والصور والعناصر التفاعلية. وتستخدم مواقع html الواحدة للمواقع الصغيرة والبسيطة، مثل مواقع الويب الشخصية أو مواقع الشركات الصغيرة. عدة صفحات html .تتكون المواقع الإلكترونية الكبيرة من عدة صفحات html، وتسمح تلك الطريقة بتنظيم المحتوى بشكل أكثر كفاءة وسهولة في التصفح. حيث ترتبط صفحات الموقع الإلكتروني ببعضها البعض باستخدام روابط html، وعندما ينقر المستخدم على رابط، يتم تحميل الصفحة المرتبطة في المتصفح. وهناك عدة أسباب لإنشاء موقع إلكتروني من عدة صفحات، منها: تنظيم المحتوى حسب الموضوع أو الوظيفة، فقد يكون هناك صفحة رئيسية تحتوي على مقدمة عن الموقع، وصفحات أخرى تحتوي على معلومات حول المنتجات أو الخدمات أو الأخبار. استخدام صفحات متعددة لجعل الموقع الإلكتروني أكثر سهولة في التصفح كاستخدام روابط التنقل لمساعدة المستخدمين على الوصول إلى الصفحات التي يبحثون عنها. يمكن إضافة صفحات جديدة إلى الموقع بسهولة عند الحاجة. أما منصة مثل فيسبوك فهي منصة ضخمة يتم توليد صفحاتها ديناميكيًا حيث يتم استخدام التالي في الواجهة الأمامية: HTML: لغة تنسيق النص التي تحدد بنية الصفحات. CSS: لغة تنسيق النص التي تحدد مظهر الصفحات. JavaScript: لغة برمجة تفاعلية تسمح للمستخدمين بالتفاعل مع الصفحات. React: مكتبة JavaScript تستخدم لإنشاء تطبيقات ويب تفاعلية. React Native: مكتبة JavaScript تستخدم لإنشاء تطبيقات ويب وتطبيقات الهاتف المحمول. الواجهة الخلفية: PHP: لغة برمجة مفتوحة المصدر تستخدم لتطوير مواقع الويب وتطبيقات الويب. Python: لغة برمجة متعددة الأغراض تستخدم لتطوير مجموعة متنوعة من التطبيقات، بما في ذلك مواقع الويب وتطبيقات الويب وتطبيقات الأجهزة المحمولة. Java: لغة برمجة قوية تستخدم لتطوير مجموعة متنوعة من التطبيقات، بما في ذلك مواقع الويب وتطبيقات الويب وتطبيقات الأجهزة المحمولة. C++: لغة برمجة قوية تستخدم لتطوير تطبيقات عالية الأداء، مثل خوادم فيسبوك. المكونات الإضافية: Apache Hadoop: نظام إدارة قواعد بيانات مفتوح المصدر يستخدم لمعالجة البيانات الضخمة. Apache Hive: نظام إدارة قواعد بيانات مفتوح المصدر يستخدم لتحليل البيانات الضخمة. Apache Spark: منصة معالجة بيانات مفتوحة المصدر تستخدم لمعالجة البيانات الضخمة في الوقت الفعلي. Elasticsearch: نظام بحث مفتوح المصدر يستخدم لتحليل البيانات الضخمة. Amazon Web Services: مجموعة من خدمات الحوسبة السحابية التي تستخدمها فيسبوك لتشغيل صفحاتها وتطبيقاتها.
  17. بخصوص الكتب الخاصة بلغة PHP فقد تم شرح الأمر هنا وعليك بالبدء من خلال كتاب PHP & MySQL: Server-side Web Development by Jon Duckett في حال كنت ستتعلم من الصفر: وبخصوص الكتب الخاصة بهياكل البيانات والخوارزميات وأيضًا جافاسكريبت وقواعد البيانات وأفضل الممارسات لكتابة كود نظيف وتحسين التفكير المنطقي أثناء التطوير، ستجد ترشيحات ممتازة هنا: وتستطيع الإختيار من بين الكتب السابقة ما شئت لكن إذا أردت الأهم فهم: Grokking Algorithms Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin Head first OOAD Good code, bad code Head First design patterns
  18. تحتاج إلى معرفة جيدة باللغة البرمجية التي ترغب في تطوير مكتبتك بها، بالإضافة إلى فهم أساسي لبنية المكتبات البرمجية. فالمطور الذي يقوم بتطوير المكتبة هو بالأساس مبرمج محترف ومتمكن من لغة بايثون، لذلك عليك أولاً دراسة الأساسيات والتمكن منها بشكل جيد وتنفيذ المشاريع ثم التعمق في اللغة بشكل تدريجي. بعد ذلك ستصل للمرحلة التي تمكنك من إنشاء مكتبة سواء كانت صغيرة أم كبيرة ليستخدمها الآخرين. ولكن المكتبة مكتوبة بلغة C ولغات أخرى أيضًا فعند التوجه لمكتبة NumPy على GitHub ستجد أنه يتم استخدام اللغات التالية: Python 60.8% C 36.3% C++ 1.2% Cython 0.9% Meson 0.5% Fortran 0.2% Other 0.1% وسبب استخدام لغات أخرى في التطوير هو الأداء وأسباب أخرى، وبالطبع تستطيع تطوير المكتبة من خلال بايثون فقط، وأنت بحاجة إلى رؤية ذلك بشكل عملي من خلال البحث عن create python package على اليوتيوب.
  19. لغة SQL هي لغة برمجة خاصة بقواعد البيانات العلائقية، تستخدم لإنشاء وتعديل وإدارة قواعد البيانات، وهي لغة مستقلة عن أي لغة برمجة أو نظام تشغيل، مما يجعلها قابلة للاستخدام مع أي لغة برمجة أو نظام تشغيل يدعم قواعد البيانات العلائقية. مكبتة sqlite3 هي مكتبة برمجة مكتوبة بلغة C، توفر واجهة برمجة التطبيقات (API) لقاعدة بيانات SQLit أما SQLite هي قاعدة بيانات علائقية صغيرة الحجم، مستقلة عن النظام، تعتمد على الملفات. الفرق بين لغة SQL و مكبتة sqlite3 لغة SQL هي لغة برمجة، بينما مكبتة sqlite3 هي مكتبة برمجة. لغة SQL مستقلة عن أي لغة برمجة أو نظام تشغيل، بينما مكبتة sqlite3 مكتوبة بلغة C. لغة SQL تستخدم لإنشاء وتعديل وإدارة قواعد البيانات، بينما مكبتة sqlite3 توفر واجهة برمجة التطبيقات (API) لقاعدة بيانات SQLite. أوجه التشابه بين لغة SQL و مكبتة sqlite3 كلاهما يستخدم لإنشاء وتعديل وإدارة قواعد البيانات العلائقية. كلاهما يستخدم جمل SQL لإنشاء الجداول والسجلات والعلاقات. كلاهما يمكن استخدامه مع أي لغة برمجة تدعم قواعد البيانات العلائقية. المفاضلة بين لغة SQL و مكبتة sqlite3 في حال كنت بحاجة إلى قاعدة بيانات علائقية يمكن استخدامها مع أي لغة برمجة أو نظام تشغيل، فإن لغة SQL هي الخيار الأفضل. وإن كنت بحاجة إلى قاعدة بيانات علائقية صغيرة الحجم وسهلة الإدارة، فإن SQLite هي الخيار الأفضل. أمثلة على استخدام لغة SQL و مكبتة sqlite3 لغة SQL: نستخجم لغة SQL لإنشاء قاعدة بيانات لتطبيق ويب لتخزين بيانات المستخدمين. مكبتة sqlite3: نستخدم مكبتة sqlite3 لإنشاء قاعدة بيانات لتطبيق سطح المكتب لتخزين بيانات المبيعات.
  20. أولاً عليك بإنشاء حساب على موقع Paymob الإلكتروني، انتقلي إلى موقع Paymob الإلكتروني واتبعي الإرشادات لإنشاء حساب، وبمجرد إنشاء حسابك، ستحتاجين الحصول على رمز API الخاص بك. وللحصول على رمز API الخاص بك، انتقلي إلى لوحة تحكم Paymob واتبعي الإرشادات للحصول على api_key من خلال الرابط التالي: https://weaccept.readme.io/docs/profile وستجدي هنا شرح للخطوات من المستند الرسمي: https://docs.paymob.com/docs/accept-standard-redirect وهناك مكتبة بايثون باسم accept-paymob من أجل التعامل مع الـ Api الخاص بـ Paymob.
  21. هناك عدة أسباب محتملة لالمشكلة، بما في ذلك: خطأ في الكود الخاص بك يتسبب في حدوث خطأ أو إنهاء التشغيل بشكل غير متوقع، وتستطيع محاولة تشغيل الملف مرة أخرى في مترجم Python لتحديد ما إذا كان هناك أي أخطاء. مكتبة مطلوبة لتشغيل الملف الخاص بك مفقودة أو تالفة، حاول تثبيت المكتبة المطلوبة أو إعادة تثبيتها. قد يكون هناك إعدادات في نظامك تمنع تشغيل الملف الخاص بك بشكل صحيح، وبإمكانك تغيير تلك الإعدادات أو إعادة تعيين النظام إلى إعدادات المصنع الافتراضية. ربما قمت أنت بتحويل الكود إلى برنامج لكن بشكل غير صحيح حاول مراجعة الخطوات وهناك شرح مفصل:
  22. من الأفضل تعلم أساسيات البرمجة من خلال لغة شائعة الاستخدام مثل بايثون، والأفضل من ذلك هو تعلم الأساسيات من خلال C++ لكن أصعب بالطبع ولا مشكلة في التعلم من خلال بايثون. أما Dart فهي تستخدم بشكل أساسي في إطار Flutter الخاص بتطوير تطبيقات الهاتف، فإذا كنت مهتمًا بتطوير تطبيقات الجوال أو التطبيقات متعددة المنصات، فستكون Dart وFlutter خيارات جيدة. وعلي أي حال تستطيع تعلم أساسيات البرمجة من خلال أي لغة برمجة مشهورة، ولكن ذكرت لك الأفضل والأصح، حتى لا تضيع وقتك وأيضًا تستفاد بما تعلمته. حيث أن بايثون شائعة الاستخدام وستتعرض لها عاجلاً أم آجلاً خلال رحلة تعلم البرمجة، وC++ مستخدمة بكثرة أيضًا وستعمل على تأسيسك بشكل أفضل من بايثون. ولا يشترط تعلم بايثون أو أي لغة قبل دخول مجال الويب لكن تلك هي الطريقة الصحيحة لدخول مجال البرمجة، والبعض يتجه مباشرًة إلى تعلم HTML, CSS, JS ولا مشكلة في ذلك لكن المستوى لن يكون واحد بالطبع. وعليك بالتركيز على اللغات الأساسيات للويب السابقة الذكر، وعدم التسرع في تعلم مكتبات أو إطارات مثل React وAngular فستصاب بالإحباط أو سيكون مستواك ضعيفًا بدون داعي، واللغات الأساسية هي ما تؤهلك لتعلم أي شيء بعد ذلك.
  23. أولاً أنت تقوم بكتابة اسم المكتبة بشكل غير صحيح حيث تكتب openCV-python واسم المكتبة الصحيح هو opencv-python. و علي أي حال يجب تحديث إصدار pip لديك من خلال الأمر التالي: pip install --upgrade pip وذلك لأن المكتبة تتطلب إصدار 19.3 من pip على الأقل. ثم تثبيت المكتبة بعد ذلك بالاسم الصحيح كالتالي: pip install opencv-python وستجد الصفحة الرسمية للمكتبة على pypi هنا: https://pypi.org/project/opencv-python/
  24. دائمًا ما أنصح بتعلم مجال الويب في البداية في حال لم تستقري على مجال محدد لتعلمه، حيث أنه مجال أسهل نسبيًا وأيضًا سيؤهلك لتعلم مجالات برمجية أخرى وستنتقل الخبرات والمعلومات التي تعلمتيها معك إلى المجال الآخر ولن يضيع مجهودك هباءًا. في حال تعلمتي أساسيات الويب ولا تريدين التخصص في ذلك المجال، فعليك الإنتقال للمجال الآخر ولا مشكلة في ذلك، لكن للحكم على مجال معين عليك الاستمرار في تعلمه لمدة لا تقل عن شهر على الأقل وخاصًة في البداية فلن تمتلكي الخبرة الكافية للحكم على ما إذا كان المجال جيد لك أم لا إلا من خلال الاستمرارية وبذل المجهود لإتخاذ قرار سليم.
  25. بالطبع لا، فتعلم C++ الهدف منه هو تعلم أساسيات البرمجة من خلال لغة برمجة قوية وليس بها abstraction أو تجريد بنسبة كبيرة مقارنًة بلغة مثل جافاسكريبت أو بايثون، لكنها أصعب في التعلم بالطبع. وبخصوص العمل الحر في مجال البرمجة، فعليك بتعلم الغات والمهارات المطلوبة بكثرة سواء كان ذلك في مجال تطوير الويب أو تطوير تطبيقات الهاتف، ونظرة واحدة على المشاريع على موقع مثل مستقل أو خمسات كافية لمعرفة نوعية المشاريع المطلوبة والمهارات اللازمة لتنفيذ تلك المشاريع. وفي المواقع العربية ستجدي أن المطلوب بكثرة فيما يتعلق بتطوير الويب هي لغة PHP وإطار لارافل ووردبريس، بعد ذلك .NET ثم بعد ذلك MERN STACK أو React. وبخصوص تطوير تطبيقات الهاتف فستجدي Flutter ثم React Native. وقبل تعلم أي مجال عليك تحديد هل تريدي العمل على مواقع العمل الحر أي في شركة، ففي حال كنتي تريدين العمل في شركة عليك البحث عن الوظائف المطلوبة في بلدك بالنسبة لخبرة سنة مثلاً أي مستوى Junior سواء كان ذلك في مجال الويب أو تطبيقات الهاتف أو مجال آخر، وتعلم المهارات المطلوبة بكثرة بالنسبة لذلك المجال وسوق العمل لديك.
×
×
  • أضف...