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

ياسر مسكين

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

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

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

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

    3

كل منشورات العضو ياسر مسكين

  1. هذا قد يكون بسبب أن الإصدار الحديث من مكتبة TensorFlow و Keras ربما قد أزال أو عدّل على استخدام optimizers.experimental.AdamW لأنه في الإصدار الحديث يتم استخدام الإصدار المحدث من AdamW بالطريقة التالية: myoptimizer = tf.keras.optimizers.AdamW( learning_rate=0.001, weight_decay=0.004, beta_1=0.9, beta_2=0.999, epsilon=1e-07, amsgrad=False, name="AdamW", )
  2. عند تثبيتنا لحزمة في البيئة الافتراضية فسيتم تثبيتها فقط داخل تلك البيئة الافتراضية ولا يتم تثبيتها على مستوى النظام بشكل عام فالبيئة الافتراضية توفر مساحة معزولة، بحيث يمكنك تثبيت إصدارات مختلفة من الحزم والمكتبات دون التأثير على النظام أو المشاريع الأخرى، وهذا يمنحنا مرونة أكبر في إدارة الحزم الخاصة بكل مشروع على حدة. المشكلة التي قد تكون واجهتها أنّ البيئة الافتراضية لديك كانت تعتمد على مكتبات النظام ففي بعض الحالات، يمكن أن تعتمد البيئة الافتراضية على مكتبات النظام إذا لم تقم بإنشاء البيئة الافتراضية بشكل مستقل تماما أي في حال كان إعداد البيئة الافتراضية يعتمد على المكتبات المثبتة في النظام وهذا ممكن عن طريق استخدام خيار مثل --system-site-packages أثناء إنشاء البيئة فإن حذف مكتبة من النظام قد يؤثر على البيئة الافتراضية في هذه الحالة. لهذا أنصحك دائما بإنشاء البيئة الافتراضية باستخدام الأمر الصحيح دون السماح باستخدام مكتبات النظام كالتالي: python -m venv myenv ثم تفعيلها كالتالي: myenv\Scripts\activate وفي حال أردت توقيفها نعمل التالي: deactivate
  3. توجد عدة مشاكل في حزمة pytube لذا صحيح يمكنك الاستعانة بحزمة pytubefix تحميل حزمة pytubefix لكنها نفسها تحتوي على مشكلة أخرى وهي أنه لا يمكنك تنزيل فيديوهات عالية الجودة دون فقدان الصوت، ولكن يمكنك تنزيل الفيديو بشكل منفصل عن الصوت ثم تشغيلهما معا لاحقا وهذه الشيفرة تحقّق ذات الغرض: from pytubefix import YouTube import os def sanitize_filename(filename): return "".join(c if c.isalnum() or c in " ._-" else "_" for c in filename) def audio(thelink, path): try: yt = YouTube(thelink) print('Title:', yt.title) print('Views:', yt.views) yd = yt.streams.get_audio_only() yt_title = sanitize_filename(yt.title) yd.download(output_path=path, filename=f'{yt_title}.mp3') print('Finished downloading audio') except Exception as e: print(f"Error: {e}") def high(thelink, path): try: yt = YouTube(thelink) print('Title:', yt.title) print('Views:', yt.views) yt_title = sanitize_filename(yt.title) video_stream = yt.streams.filter().order_by("resolution").last() audio_stream = yt.streams.get_audio_only() video_filename = f'{yt_title}.mp4' audio_filename = f'{yt_title}.mp3' video_stream.download(output_path=path, filename=video_filename) audio_stream.download(output_path=path, filename=audio_filename) print('Finished downloading high resolution video and audio') except Exception as e: print(f"Error: {e}") def low(thelink, path): try: yt = YouTube(thelink) print('Title:', yt.title) print('Views:', yt.views) yd = yt.streams.get_lowest_resolution() yt_title = sanitize_filename(yt.title) yd.download(output_path=path, filename=f'{yt_title}.mp4') print('Finished downloading low resolution video') except Exception as e: print(f"Error: {e}") link_inp = input("Please Enter the link of the video: ") path_inp = input("Please Enter the download path: ") menu_inp = input('Select:\n1- Audio\n2- Highest Resolution\n3- Lowest Resolution\n') if menu_inp == '1': audio(link_inp, path_inp) elif menu_inp == '2': high(link_inp, path_inp) elif menu_inp == '3': low(link_inp, path_inp) else: print('Invalid input')
  4. قبل تحديث أيّ أداة نستخدمها يجب أولا أن نتأكد من أنّ جهاز الكمبيوتر لدينا يلبي متطلبات النظام لتثبيت وتشغيل Visual Studio 2022 فانتقالك من نسخة 2013 إلى 2022 قد يتسبّب في عدم اشتغال النسخة الحديثة وعملها معك إلا إن كان حاسوبك يقبل النسخة ويمكنك تحميلها والتعرف على متطلبات النظام من هنا: متطلبات النظام ل Visual Studio 2022. وبعد تثبيته يمكنك فتح مشاريعك القديمة لكنك قد تحتاج إلى تحديثها لتكون متوافقة مع الإصدار الجديد، وأنصحك دوما بالتحقق من وجود تحديثات جديدة من خلال الذهاب إلى "Help" ثم "Check for Updates" كي يكون دوما محدّثا.
  5. الإجابة الدقيقة تعتمد على أيّ دولة ترغب في الدراسة فيها، وحظوظ العمل وقطاع الشغل داخلها، والجامعات وهيكلتها فلكلّ جامعة مسار معين يتم اتباعه وتوجد أيضا الجامعات والمعاهد الخاصة لكن بشكل عام فالدراسة المباشرة في الأمن السيبراني ستركّز مباشرة على المهارات والمعرفة المتعلقة بالأمن السيبراني ويكون هنالك فرص للتعلم من خلال البرامج العملية والمشاريع المتعلقة بالاختراق الأخلاقي، تحليل البيانات، وغيرها. لكن لا يخفى عليك أنه قد تجد مفاهيم ناقصة مقارنة بدراسة تقنية المعلومات التي تشمل الفهم الشامل لتقنيات المعلومات، بما في ذلك الشبكات، قواعد البيانات، البرمجة، والأنظمة وبرأيي أنها تتيح مرونة أكبر في اختيار مجالات العمل، حيث يمكنك العمل في مجالات تقنية متنوعة قبل التخصص لكن قد يستغرق الأمر وقتا أطول للوصول إلى تخصص الأمن السيبراني. لهذا الأمر يرجع بالنسبة إليك، فإذا كان لديك إلمام بالمجال ووجدت نفسك متأكدا من رغبتك في العمل ومستعدّا يمكنك البدء مباشرة في هذا المجال. أما إذا كنت ترغب في اكتساب معرفة أوسع، فقد يكون من الأفضل البدء بتقنية المعلومات ثم التخصص لاحقا.
  6. توجد مكتبات مثل jsPDF وpdfmake توفر دعما أفضل للغات التي تكتب من اليمين إلى اليسار كالعربية، وهذه المكتبات تسمح بتسجيل الخطوط العربية وضبط اتجاه الكتابة بسهولة يمكنك محاولة تحسين استخدام @react-pdf/renderer عن طريق تسجيل الخطوط العربية بشكل صحيح واستخدام خصائص CSS مثل writingMode: 'rtl' لتحسين عرض النص العربي ففي بعض الحالات، قد تحتاج إلى استخدام مكتبات إضافية مثل bidi-js لمعالجة النص قبل عرضه في PDF فقد لا تجد مكتبة شاملة وكاملة لذا قد يتعين التعديل للتحسين من العرض.
  7. تحقق من أن لديك أحدث إصدار من TensorFlow ويكون متوافق مع إصدار بايثون لديك، يمكنك تحديثه باستخدام الأمر التالي: pip install --upgrade tensorflow إن استمرت المشكلة قم بإلغاء التثبيت ثم أعد تثبيته من خلال: pip uninstall tensorflow pip install tensorflow إذا كنت تستخدم GPU، تأكد من تثبيت CUDA و cuDNN بشكل صحيح ومتوافق مع إصدار TensorFlow كما أنصحك بإنشاء بيئة بايثون افتراضية جديدة وثبّت فيها جميع المكتبات المطلوبة هذا يمكن أن يساعد في تجنب تعارضات الإصدارات.
  8. المشكلة في تحويل الأرقام إلى نصوص يبدو أنك بدأت في التفكير بحلول تقليدية مثل استخدام for loop و if statements، ولكن كما ذكرت، هذا الحل سيكون غير عملي ومعقد، خاصة إذا كنت تتعامل مع نطاق واسع من الأرقام فالأرقام لها أنماط محددة ومن 1 إلى 19 لكل رقم اسم مختلف وأما من 20 إلى 99 لديك العشرات (twenty, thirty, forty,...)، والرقم الذي يتبعها 1 إلى 9 أيضا. في حين أنّ الأرقام من 100 إلى 999 تحتاج إلى التعامل مع المئات، ثم معالجة العشرات والوحدات بعد المئات. وللتفكير في حلّ للمشكلة هذه سيتطلب منك البحث عن الأنماط بدلا من التفكير في كل رقم على حدة، عليك ملاحظة أن هناك مجموعات من الأرقام التي تتكرر بنمط معين ثم تقسيم المشكلة إلى أجزاء صغيرة كأن تسأل: كيف ستحول الأرقام من 1 إلى 19؟ كيف ستحول العشرات مثل 20، 30، 40؟ كيف ستتعامل مع الأرقام التي تحتوي على مئات مثل 220 أو 345؟ وهنا يظهر العيب في استخدام الحلقات مع if statements لكل رقم يعني أنك ستحتاج إلى العديد من الشروط لكل رقم، وستكون الحلول غير مرنة مع الأرقام الكبيرة أو المستقبلية والفكرة تكمن في إيجاد طريقة لحل المشكلة بشكل عام وليس مجرد حل لكل حالة. يمكنك مراعاة استخدام الكائنات بحيث يمكنك تخزين الأرقام الأساسية (من 1 إلى 19 والعشرات) كقيمة نصية في كائن، بحيث تسترجع النص المقابل لكل رقم بسهولة بعدها يمكنك تقسيم الأرقام إلى مئات وعشرات ووحدات، ومعالجة كل جزء على حدة.
  9. توجد العديد من اللغات البرمجية والكثير من أطر العمل الجديدة، وعشرات المسارات المختلفة، ولكلّ مسار أو لغة أو إطار مجتمع من المبرمجين الدّاعم له، فلو افترضنا أنّك سمعت كلاما كلّ شهرين وظهر لك بأنّ المسار الذي تعلّمته طيلة الشهرين هو خاطئ فأنت لن تتعلّم أبدا! لا أريد منك أن تعتبر كلامي هذا تثبيطا لك، لكن ما قصدته هو أنّ اختيار المجال يكون قبل البدء في التعلم، من خلال دراسته جيدا وما ترغب في العمل به، وميولاتك وما تحبّ وما تفضّل، وليس كلام الناس والمبرمجين الآخرين، فلكلّ مبرمج تفضيلاته الشخصية التي سيدافع عنها لا محالة، وقد يكن الأمر بالنسبة لك لا يساعدك فتجد نفسك تسير في مسار خاطئ، لأنك اتبعت آراء الناس ولم تستمع لما تريده أنت. فالسر وراء الاستمرارية في البرمجة هو صبر وحبّ المبرمج لهذه المهنة، التي هي قبل أن تكون مهنة هي شغف. عليك أن تدرس سوق العمل، التحديثات الجديدة التي تطرأ في المجال، والكثير من العوامل، بما أنك في البداية، وإن طلبت آراء أو نصائح واستشارات فهو أمر جيد لكني أنصحك باتباع الآراء الموضوعية.
  10. بالنسبة لمسار الذكاء الاصطناعي في الأكاديمية يمكنك تفّحصه مباشرة من هنا: يمكنك مراجعة المقالات والأسئلة التي تمّ التطرق فيها للفروقات والمعلومات المختلفة المتضمنة هذا المسار من هنا: أو من هنا: https://academy.hsoub.com/artificial-intelligence/.
  11. بدلا من الاعتماد على مكتبة python-bidi، يمكنك تجربة مكتبات أخرى تدعم النصوص من اليمين إلى اليسار (RTL) على الأجهزة التي تعمل بمعمارية ARM، مثل مكتبة arabic_reshaper والتي تعمل على إعادة تشكيل النصوص العربية بشكل صحيح لتعمل مع مكتبة PIL و pyftsubset لرسم النصوص بشكل صحيح على الأجهزة المحمولة.
  12. الدالة KNNImputer تستخدم لملء القيم المفقودة في مجموعة البيانات والغرض منها هو تعويض القيم المفقودة في البيانات بحيث يتم استخدام خوارزمية الجار الأقرب k-nearest neighbors وللتبسيط فهي تبحث عن k وهي نقاط البيانات الأقرب للقيمة المفقودة وتستخدم متوسطها أو وسيطها لملء الفراغ وما يميزها أنها تحافظ على العلاقات بين المتغيرات وتعمل بشكل جيد مع البيانات غير الخطية.
  13. وعليكم السلام. import numpy as np data = np.array([1, 2, np.nan, 4]) print(np.isnan(data)) لاحظ في هذا المثال قمنا بإنشاء مصفوفة NumPy تحتوي على بعض القيم، بما في ذلك قيمة NaN أي غير عددية واستخدمنا الدالة np.isnan() للتحقق من وجود قيم NaN في المصفوفة، حيث ستعطينا مصفوفة Boolean تُظهر أن هناك قيمة NaN واحدة: [False False True False] ف NaN أو Not a Number هو تمثيل يستخدم للإشارة إلى القيم المفقودة أو غير المعرفة في البيانات وهو ببساطة إذا كان لدينا مجموعة من الأرقام وواحد منها غير معروف أو غير متوفر، يمكن استخدام NaN بدلا من تركه فارغ هذا للمساعدة في إدارة البيانات بشكل أفضل، حيث يمكننا حينها إجراء حسابات مع تجاهل القيم المفقودة.
  14. بناء على المثال الذي أعطيته لك هذا ممكن: let username = "mahmoud123"; let userElement = $(".uzr:contains('" + username + "')"); if (userElement.length > 0) { userElement.addClass("custom-class"); } وهذا شرح للخاصية التي أضفناها: addClass("custom-class"): وإذا تم العثور على العنصر، نضيف الكلاس المخصص (في هذا المثال "custom-class") إلى العنصر. وبمجرد إضافة الكلاس المخصص، يمكنك تعديل خصائص CSS للمستخدم أو إجراء تغييرات أخرى على العنصر، مثل تغيير الألوان أو الأيقونات، عن طريق التلاعب بالخصائص في ملف CSS. .custom-class { color: blue; font-weight: bold; } كتغيير الألوان والخطوط وغيرها.
  15. الانتقال إلى المسار التالي في الدورة يحتاج من الطالب إلى الاستماع للدروس جميعها وفهمها، تطبيق جميع الشّروحات والمفاهيم التي تحتويه، مع إنجاز المشاريع وال Assignements التي يطلبها المدرب. هذا وحده قد لا يكون كافيا، لذلك ينصح بإعادة كتابة الشيفرات لوحدنا دون الرجوع إلى الدرس لترسيخ المفاهيم التي تعلمناها. يمكنك الاطلاع على منهجية التعلم الجيد للدورات فقد تم مناقشة هذا الموضوع من قبل من هذه المصادر:
  16. حسبما فهمته من كلامك فأنت تريد إجراء تغييرات على المستخدمين في الموقع باستخدام الاسم المستعار (username) فقط دون الرجوع إلى الـ ID أو الـ class وهذا يتطلب تحديد عنصر المستخدم على الصفحة بناء على اسمه المستعار ثم إجراء التغييرات المطلوبة عليه، مثل تغيير اللون أو إضافة خصائص أخرى، يمكن استخدام jQuery أو JavaScript لتنفيذ ذلك عبر البحث عن المستخدمين في DOM باستخدام اسم المستخدم. فعلى سبيل المثال لنفرض أن لدينا قائمة من المستخدمين، ونريد البحث عن مستخدم معين وتغيير لون اسمه سنقوم بذلك بهذا الشكل: let username = "ali123"; let userElement = $(".uzr:contains('" + username + "')"); if (userElement.length > 0) { userElement.css("color", "red"); } فباستخدام التابع contains() في jQuery سنبحث عن العنصر الذي يحتوي على نص اسم المستخدم وإذا تم العثور على العنصر من خلال (userElement.length > 0)، نقوم بتغيير اللون ونستخدم css() لذلك الغرض. الشيفرة الخاص بالتشويش يمكن فك التشويش باستخدام أدوات فك التشفير (deobfuscators) أو محاولة استبدال الرموز يدويا، لكن ذلك يعتمد على مدى تعقيد التشويش يمكنك استخدام بعض الأدوات لعمل ذلك ك: JSNice: وهي أداة مجانية لفك تشويش الأكواد. Beautifier.io: لتحسين قراءة الكود المنسق بطريقة غير مفهومة.
  17. وعليكم السلام ورحمة الله، لا مشكلة، فكما تعلم الدورات في الأكاديمية بمجرد الإشتراك فيها فهي تمنحك صلاحية غير محدودة (أي يمكنك الوصول إلى الدورات ومختلف التحديثات التي تطرأ عليها) مدى الحياة فلا يوجد فيها اشتراك أو تجديد كما يمكنك التقدم إلى امتحان الدورة في أي وقت، من خلال التواصل مع مركز مساعدة أكاديمية حسوب، مع مراعاة تحقيق الشروط التالية: إتمام أربعة مسارات تعليمية على الأقل. التطبيق العملي مع المدرب، والاحتفاظ بالمشاريع العملية الناتجة لإرسالها للمراجعة. رفع المشاريع على حسابك على GitHub أولا بأول لمشاركتها مع الممتحنين ليقيّموك. يمكنك التعرف أكثر حول المعلومات الخاصة بإجراء الاختبار وما إلى ذلك من هنا:
  18. عمل ممتاز، لكن لديّ بعض النصائح، تعلّم اللغات وأطر العمل هو مفتاح لإيجاد عمل محترم سواء في الشركات أو في منصات العمل الحر، لكن هذا يعتمد على كيفية تعلّمك لها، فدراسة الدورات والكورسات وإتمامها لا يعني أنّنا أتقننا اللغة وتمكّننا منها، فهذه اللغات في تطور مستمر وعدم مواكبتنا للتغيرات الكبيرة التي تحدث يعني أننا متخلّفون كثيرا عن المسار ويجب التعلم. بالنسبة ل DevOps فقد أصبح جزءا مهما جدا في تطوير البرمجيات وخاصة في الشركات التي تعتمد على منهجية التسليم المستمر (CI/CD) وتهدف لتحسين الكفاءة والجودة في تطوير البرمجيات فإذا كنت تحب العمل على البنية التحتية، الأتمتة، والتحسين المستمر فأنصحك بتعلمه كأولوية ولكي تصبح مطورًا في DevOps، تحتاج إلى فهم جيد لأدوات مثل Docker, Kubernetes, Jenkins، المعرفة بالبنية التحتية السحابية (مثل AWS, Azure, GCP)، وأتمتة العمليات باستخدام Python أو Bash. كما توجد سلسلة شاملة من المقالات التي تتحدث عنه في الأكاديمية من هنا: تعلم ال DevOps.
  19. في تطوير التطبيقات باستخدام الـ MERN Stack والذي يتكون من MongoDB, Express, React, و Node.js لا يتم عادة استخدام نظام التشغيل Linux بشكل مباشر كجزء من التقنيات الأربعة الأساسية، ولكنه يلعب دورا مهما في البنية التحتية بالتحديد وفي إدارة الخوادم لهذا فتعلمها حتما سيكون مفيدا فالعديد من الخوادم التي تستضيف تطبيقات MERN Stack تعمل بنظام تشغيل Linux لهذا لتعلمها يجب أن تتعرف على أوامر Linux وكيفية إدارة الخوادم وهذا الأمر يمكن أن يساعدك في نشر التطبيقات وضبط إعدادات الخوادم، ومراقبة الأداء بشكل عام.
  20. في المرة القادمة أرجو إرفاق صورة كاملة أو لقطة شاشة ورفعها وليس صورة بكاميرا الهاتف، لأنها ليست واضحة على الإطلاق. المشكلة المحتملة هي في التعبير العادي الذي استخدمته للتحقق من البريد الإلكتروني فربما الذي تستخدمه لا يغطي كل الحالات الممكنة للبريد الإلكتروني الصحيح. يمكنك استخدام مكتبة مثل email.utils أو استخدام تعبير عادي شامل أكثر للتحقق من صحة البريد الإلكتروني هكذا: import re def is_email(email): pattern = r'^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$' return re.match(pattern, email) email = input("Enter your email: ") if is_email(email): print(f"{email} is a valid email") else: print(f"{email} is not a valid email") فمثلا التعبير العادي الذي استخدمته في المثال له معنى خاص: ^[a-zA-Z0-9_.+-]+: أي أن بداية البريد الإلكتروني يجب أن تحتوي على حروف وأرقام وعلامات معينة. @[a-zA-Z0-9-]+: يجب أن يحتوي على علامة "@" تتبعها مجموعة من الحروف والأرقام. \.[a-zA-Z0-9-.]+$: النهاية يجب أن تكون نطاق يحتوي على "نقطة" واسم المجال (مثل com أو org).
  21. لا يوجد وقت محدّد للبدء في حلّ المشاكل البرمجية فيمكنك البدء في أي وقت تريد فلا يشترط ذلك أن تكون لديك خبرة سنوات لكن يفضل أن تبدأ عندما تكون لديك أساسيات في البرمجة والرياضيات، لكن يمكنك أيضا البدء بحل المشاكل البسيطة في البداية. ما تحتاجه في البداية يمكن تلخيصه إلى التالي: تعلم الأساسيات: حاول إتقان لغة برمجة مثل بايثون، جافا. يجب فهم البيانات الأساسية (مثل القوائم، المصفوفات، والمجموعات وغيرها). وهذه المهارة تُكتسب من خلال الاستمرارية في حلّ المشكلات تلو المشكلات، من الطبيعي أن تظهر لك صعبة في البداية لكن لا يجب أن تستسلم، فالبرمجة مشوارها طويل، وهذه المهارة تأتي مع الوقت وتنمو. كما أنصحك بتعلّم مهارة التفكير النقدي ومحاولة تحليل المشكلة من زوايا مختلفة قبل البدء في حلّها ثم القيام بكتابة خطوات الحل قبل البدء في البرمجة مباشرة وتعلم الخوارزميات وطريقة كتابتها واستخداماتها. يمكنك الاطلاع على هذا النقاش من هنا:
  22. ال Unit Tests هي اختبارات برمجية للتحقق من أن كل وحدة صغيرة من الكود (مثل الدوال أو التوابع) بحيث تعمل كما هو متوقع فيقوم المطور بكتابة اختبار يعطي مدخلات ويقارن النتائج المتوقعة مع النتائج الفعلية للوحدة. وهذا لتحسين جودة الشيفرة وتسهيل الصيانة والتطوير والكشف المبكر عن الأخطاء يمكنك التعرف أكثر عليها من خلال:
  23. أعتقد أنّ ما تمرّ عليه أمر طبيعي أن تشعر ببعض الشكوك أو التساؤلات حول الطريقة الأفضل للتعلم فهذه الشكوك قد تبدو وكأنها أوهام، لكنها في الواقع جزء طبيعي من رحلة التعلم، فكلّنا مررنا بهذه المرحلة حينما يستصعب علينا تعلّم بعض المفاهيم فنتوهّم أنّه لو كانت الأمور تسير بشكل مغاير لاستفدنا أكثر لكن في الحقيقة الأسلوب المعتمد في الأكاديمية في دوراتها ودروسها هو نهج معتمد ومدروس ولا يمكن نسفه. كما أنّه ليس من المعقول في أيّ دورة أن تبدأ بالجانب التطبيقي مباشرة، فيجب أن يتمّ التطرّق للمفاهيم البرمجية والمنطقية قبل الدخول في المشاريع وهذا ما يتمّ اعتماده، ثمّ يتمّ تطبيق تلك المفاهيم على مشاريع منتقاة تعالج الإشكاليات التي قد تكون واجهتك في الجانب النظري. بالنسبة لرأيك هنا: توجد ثلّة من المدربين متوفّرون على مدار الساعة لأيّ استفسار يواجهك أثناء مرحلة التعلم من بينها هذه الأسئلة ويمكن إرشادك وتوجيهك، لكن كنصيحة فقط فمع مرور الوقت والتعلم ستدرك بأنكّ لست بحاجة لدرس كامل ليقول لك ذلك، لأنّك ستعرف ذلك بنفسك مع مرور الوقت والتعلم المستمر، ومن عنوان المشروع ستعرف بأنك ستحتاج إلى قاعدة بيانات أو لا تحتاج لذلك، وربما ستستخدم التخزين المحلي فقط وهكذا.
  24. هذا الخطأ ناتج عن محاولة الاتصال بخادم يستخدم بروتوكول SSL أي HTTPS عبر بروتوكول غير مشفر كهذا (HTTP) لهذا يجب عليك استخدام البروتوكول الآمن عند الوصول إلى phpMyAdmin. حاول إدخال العنوان التالي في متصفحك والمحاولة مرة أخرى: https://localhost:443/phpmyadmin
  25. لا مشكلة، يمكنك استخدامها وهذا لا يغير من حقيقة أنه يجب أن يكون هنالك برامترين في الدالة read_sql الأول فيه الاستعلام والثاني خاص بالاتصال بقاعدة البيانات الذي عملته بال mysql لذا يمكنك تغيير الاستيرادت لتتوافق مع ما تستخدمه. import pandas as pd import mysql.connector
×
×
  • أضف...