-
المساهمات
6975 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
218
إجابات الأسئلة
-
إجابة Wael Aljamal سؤال في خطأ في مشروع دجانغو ImportError: Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment? كانت الإجابة المقبولة
ربما سبب الخطأ عملك على أكثر من حزمة لتوفير بيئة افتراضية من مشاريع مختلفة، فأصبح هنالك تضارب في مكتبات تم تثبيتها من خلال pip وفي الكاش الخاص به.
يمكن البدء بحذف الكاش من خلال الأمر:
pip cache purge أو يدوياً:
نحذف ما داخل المجلد: %LocalAppData%\pip\Cache و يمكن التحقق من مسار الكاش: pip cache dir ➜ pip3 cache dir /home/tawanda/.cache/pip بعدها نعود للمشروع ونحاول تفعيل البيئة الافتراضية.
كحل جذري للمشكلة، أرجو فتح python installer من جديد ثم من خلاله نحذف التثبيت وجميع البيانات والكاش من خلال تحديد ذلك ضمن الواجهة الرسومية (عمل check على الخيار)
نعيد تشغيل الحاسوب تثبيت بايثون و pip ونعود لمشروعك الذي تعملين عليه، هنا نعيد تثبيت المكتبات التي كنت تعملين عليها بعد تفعيل البيئة الافتراضية لنفس الحزمة التي تم استخدامها من قبل هل كانت pipenv أو غيرها؟ و حاولي تشغيل المشروع
-
إجابة Wael Aljamal سؤال في تحميل ملف كبير في لارافيل كانت الإجابة المقبولة
مرحبا اسماعيل،
ضمن دورة PHP يوجد مسار تطبيق مشاركة فيدوهات هل اطلعت عليه؟ ربما فيه إجابة لتساؤلاتك فهو يحوي نفس الأمور التي طرحتها في السؤال مثل التخزين السحابي مثلاً خدمات أمازون مع توفير الفيديو بأكثر من دقة مختلفة
حجم و سرعة تحميل الفيديو مرتبط بسرعة الانترنت في الاستضافة / حسب عدد المستخدمين للتطبيق في نفس الوقت يمكن من خلال خصائص خادم الويب زيادة مدة Timeout (فترة انتظار انتهاء رفع/تحميل الفيديو) لقيمة مناسبة للمستخدمين أي أكثر من القيم الافتراضية مثل إعداد PHP *** PHP configuration /etc/php/<phpversion>/fpm/php.ini => max_execution_time = 1800 # 30 min /etc/php/<phpversion>/fpm/pool.d/www.conf => request_terminate_timeout = 0 # no timeout و إعاداد خادم
Nginx configuration
/etc/nginx/sites-available/yoursite.conf location ~ \.php$ { # ... fastcgi_read_timeout 300; # ... } /etc/nginx/sites-available/yoursite.conf fastcgi_read_timeout = 2000; # 2000 secs وفي حال استخدام مكتبة في الواجهة الأمامية مثل dropzonejs لها خاصية timeout لزيادة وقت الانتظار
var myDropzone = new Dropzone("#uploader", { // ... timeout: "4321", // ... });
-
إجابة Wael Aljamal سؤال في حذف constructors فارغ لا يسبب ظهور خطأ في جافا كانت الإجابة المقبولة
هذا لأن لغة جافا تقوم بإنشاء دالة بانية افتراضية بدون وسطاء كحالة افتراضية لعدم إضافة أي دالة بانية من المبرمج.
الدالة البانية الافتراضية تقوم بإنشاء كائن فارغ، أي الخواص فيه لاتحوي أي قيمة لكن هيكليته من نفس الصنف الذي تم إنشائه منه
-
إجابة Wael Aljamal سؤال في نقل دورة أكاديمية حسوب من حساب إلى حساب أخر كانت الإجابة المقبولة
مرحبا الياس،
أرجو التواصل مع مركز المساعدة و طرح المشكلة أو ما تريده لهم فهم مخولين بهكذا مواضيع
support.academy.hsoub.com شكرا لك
-
إجابة Wael Aljamal سؤال في كيف يمكن عمل filters للقائمة في flutter كانت الإجابة المقبولة
ذكرت انه على فرض لديك قائمة أغراض، عند النرور على القائمة سيمثل i الغرض الحالي (مثل حلقة for).. و يمكن منه الوصول لخواض العنصر الحالي (حسب دليل التكرار في الحلقة) where.
نعم، إن كانت عناصر القائمة تحوي الخاصية name يمكن عمل فلترة حسبها.
أنا ذكرت color حسب سؤالك، فأنت أرفقت خواص العناصر في القائمة و منها السعر أيضا، أي هو مثال
يمكنك طباعة أول عنصر في القائمة
ب print ل list[0] مثلا و سيتم عرض بنية هذه العناصر وهي نفسها ستكون نفس جدولك في قاعدة البيانات mysql
-
إجابة Wael Aljamal سؤال في كيف يمكنني جعل البرنامج يعيد سؤال المستخدم عندما يدخل أحرف في هذا البرنامج في بايثون كانت الإجابة المقبولة
البرنامج يرمي استثناء عند إدخال نص، بسبب فشل تحويل المدخلات النصية إلى رقم في الدالة int
يمكن نقل try إلى داخل الحلقة، وفي حال حصول استثناء نتابع تنفيذ الحلقة while ب continue
userInput = 0 while True: try: userInput = int(input("Enter something: ")) except ValueError: print("Not an integer!") continue يمكن أيضا استخدام الدوال isdigit و isnumeric لاختبار هل المدخل هو رقم أم لا
if userinput.isdigit(): #do stuff ولا ختبار أن المدخل حرف نستخدم الدالة isalpha على المتغير بنفس الطريقة
-
إجابة Wael Aljamal سؤال في [php] خطأ في عمل function لجلب داتا من قاعدة البيانات في mysqli_connect و mysqli_query كانت الإجابة المقبولة
المتغيرات التي يتم تعريفها داخل دالة غير مرئية خارجها، ما أقصده كالتالي:
<?php function getData($table,$data){ $connect = mysqli_connect('localhost','root','','moh'); $q = "select * from $table"; echo $q; $result= mysqli_query($connect, $q); echo $result; while ($rows = mysqli_fetch_assoc($result)){ return $rows[$data]; } } echo 'result: ' . getData('user','id');
-
إجابة Wael Aljamal سؤال في كيفية تعريف و بناء مصفوفة من الكائنات جافا كانت الإجابة المقبولة
سوف أضع أمثلة،
بناء كائن واحد من صنف Computer
Computer computer = new Computer(); class object class constructor دالة بانية عند بناء كائن من صنف نقوم باستدعاء الدالة البانية له.
هذا الكلام لكائن واحد، نلاحظ أولاً تعريف نوع المتغير computer على اليسار وعلى اليمن عملية البناء الفعلي التي تقوم بإنشاء الكائن و حجز الذاكرة.
مقدمة لمصفوفة الكائنات:
مثال لتعريف مصفوفة أرقام:
بناء المصفوفة بتحديد نوعها المرور على عناصر المصفوفة وإسناد قيمة لها int[] arr = new int[10]; for (int i = 0; i < arr.length; i++) arr[i] = i; } في مثال مصفوفة كائنات Computer الفرق هو أن كل عنصر عبارة عن كائن، لذلك يتوجب بناؤه بشكل منفصل
Computer[] list = new Computer[5]; بناء المصفوفة | نوع المصفوفة for(int i=0; i<list.length; i++) list[i] = new Computer(); // بناء العناصر بشكل فردي
-
إجابة Wael Aljamal سؤال في ريأكت: ادراج عنصر في مصوفة عند فهرس محدد، واجراء حلقة map على مكون ريأكت كانت الإجابة المقبولة
لقد جربت الشيفرة في المتصفح وتم المرور على العناصر بالترتيب الصحيح:
جافاسكربت:
const array = ['1','2','3']; array.splice(2, 0, "4"); // ['1', '2', '4', '3'] array.map((content, index) => console.log(index,content) ) 0 '1' 1 '2' 2 '4' 3 '3' تأكد من عدم قيامك بعملية ترتيب للمصفوفة
ريأكت:
import React from "react"; import "./styles.css"; export default function App() { const array = ['1', '2', '3']; array.splice(2, 0, "4"); return ( <ul> {array.map((content, index) => <li key={index}> {content} </li> )} </ul> ); } النتيجة:
إن بقيت المشكلة، يمكنك حشر العنصر يدوياً باستخدام المنطق التالي:
نزيح العناصر من دليل العنصر المصاف لآخر المصفوفة خطوة لليمين نخزن العنصر الجديد في الدليل المطلوب function insertElement(newElement, index) { for (i = arr.length; i > index; i--) { arr[i] = arr[i - 1]; } arr[index] = newElement; } يمكنك تجريب إعادة نشر المصفوفة قبل المرور عليها لتوزيع المفاتيح من جديد
return [...array].map((content, index) => <li key={index}>{content}<li/> ) ^^^^^^^^^^^^
-
إجابة Wael Aljamal سؤال في مشكلة return datetime.date.fromisoformat(value) TypeError: fromisoformat: argument must be str عند تهجير البيانات في دجانغو كانت الإجابة المقبولة
المشكلة تمرير وسيط يختلف عن الوسيط الذي تنتظره الدالة والسبب انه دجانغو تقوم بأنشاء ملفات تلقائية مثلا رسالة الخطأ الثانية : تنتظر سلسلة نصية لانه يوجد شرط في احدى الملفات التلقائية التي تم توليدها (هل قمت بتعديل نمط قاعدة البيانات)؟ قد يتم إنشاء ملفات تهجير مختلفة جزئياً مما يمنع وجود التوافق مع قاعدة البيانات المختارة)
الحل: ان تقومي بحذفي جميع الملفات الموجودة ضمن مجلد migrations مع الاحتفاظ ب
__pycache__ __init__ وإعادة تهجير البيانات
python manage.py migrate واعلامي بالنتيجة
-
إجابة Wael Aljamal سؤال في معالجة رفع ملف من المستودع المحلي إلى المستودع البعيد كانت الإجابة المقبولة
تأكد من تصفح نفس الفرع في الموقع يمكنك تحديد main أو master من تبويب على اليسار أعلى مستعرض الملفات.
https://github.com/Saadaoui-Forkan/webAgency/tree/master
الملف تم تعديله من 4 ساعات يعني أن الدفع تم بشكل صحيح، لكنك تتصفح الفرع الآخر
-
إجابة Wael Aljamal سؤال في لم لايوجد اختبار بعد كل درس كانت الإجابة المقبولة
يتم توزيع أفكار كل مسار على عدد من الدروس، بحيث يتم سرد الأفكار المترابطة مع بعضها بنفس الدرس حتى أن بعض خطوات المشاريع تقسم إلى درسين..
بالنسبة للتطبيق على الدرس هو مسؤولية الطالب، تأكد من فهمك لما تم شرحه، يمكنك طرح أسئلة ويمكنك ااتطبيق بنفسك على الدرس من خلال التطبيق على أفكار الدرس، ويمكنك طرح سؤال في تعليق تطلب من المدرب أن يسند لك مهمة لقي تقوم بااتنفيذ عليها سوف نساعدك في طرح أفكار تمارين إن أردت، الموضوع عائد إليك.
ملاحظة، في بغض المسارات الجديدة يوجد تمارين للطلاب وأعتقد أن الإدارة سوف تقوم بتضمين ذلك في التحديثات القادمة خاصة لدروس الأساسيات كما هو في دورة بايثون.
-
إجابة Wael Aljamal سؤال في هل ممكن تبديل دورتي لتعلم الانكليزية كانت الإجابة المقبولة
أهلا عبد الله،
لايوجد دورة تعليم لغة انجليزية مقدمة من أكاديمية حسوب، الدورات جميعها خاصة بالبرمجة.
الدورات مشروحة باللغة العربية، لكن بالطبع لغات البرمجة تستخدم اللغة الانكليزية في كتابة شيفراتها البرمجية، ولكن عدد هذه الكلمات الواجب تعلمها قليل و محدود، أي لن تشكل لك مشكلة في تعلم البرمجة.
يمكنك دوما محاولة ترجمة ما يظهر لك و التدرب على الانكليزية بنفسك الوقت.
آخرا، إن دورات أكاديمية حسوب متاحة لك مدى الحياة ولا تتطلب دفع رسوم إضافية، أي أنك غير مضطر للانسحاب من الدورة،
ما أنصح به هو محاولة ترجمة و فهم ما يظهر لك من كلمات انكليزية و تعلمها لأنه ستمر معك لاحقا.
اطرح أي استفسار يتعلق في الدرس ضمن قسم التعليقات أسفله مع توضيح مشكلتك لنتمكن من مساعدك وشرحها لك.
تحياتي
-
إجابة Wael Aljamal سؤال في هل البرمجة ب android studio مزالت مطلوبة؟ كانت الإجابة المقبولة
Flutter تقدم ميزات أكثر و تشغيل نفس المشروع على عدة أنظمة تشغيل، لكن مازال البعض يطلب تطبيقات أصلية Native Apps لأنها تكون مدعومة بشكل كامل من نظام التشغيل أما باقي التقنيات ترى أن دعم أنظمة التشغيل ليس كامل، بل يتم تطوريهم يوما بعد يوم.. إذن برمجة التطبيقات الأصلية مطلوبة لكن بشكل متناقص، فجميع المشاريع البسيطة للمتوسطة يمكن عملها ب Flutter ولن يواجه المطور مشكلة في ذلك مع نظام أندرويد لأنك مدعوم بشكل كبير (هو النظام الرئيسي التي تدعمه Flutter)
-
إجابة Wael Aljamal سؤال في كيفية إستبدال عدد من الأحرف بأحرف أخرى في بايثون Python؟ كانت الإجابة المقبولة
يمكنك استخدام الدالة maketrans التي تقبل تمرير قاموس فيه المفتاح هو المحرف الذي نريد استبداله و القيمة هي ما سوف نستبدله المفتاح به
print(s.maketrans( {'&': '\&', '#': '\#'} )) s هي السلسلة الأصلية التي تريد التعديل في محارفها
-
إجابة Wael Aljamal سؤال في عند تنفيذ الكود يظهر الخطأ في المتصفح NoReverseMatch at /accounts/doctors/ مشروع django كانت الإجابة المقبولة
يبدو أنك تستعملين بوتستراب، وهو غير مضاف للمشروع،
أي مكون خارج عن مكونات بوتستراب يجب أن يتم تنصيبه في المشروع وإضافته لملف settings
pip install bootstrap5 بعد التحميل بفتح settings.py ضمن INSTALLED_APPS بضيف ‘django_bootstrap5’ ,
-
إجابة Wael Aljamal سؤال في كيفية إنشاء ملف للثوابت constants في React.js؟ كانت الإجابة المقبولة
ما ينقص ملفك هو تصدير المتغير الثابت من خلال تعليمة export لتستطيع استخدامه خارج ملفه الأصلي
export const REQUEST_SENT_SUCCESSFULLY = "We got your request." ثم سيعمل
إن رغبت بتضمين قيمة واحدة يمكن استخدام named import
import {REQUEST_SENT_SUCCESSFULLY } from "./constants"; console.log(REQUEST_SENT_SUCCESSFULLY); يمكنك أيضا تجميع المتغيرات الثابتة في كائن واحد وتصديره وحده فقط ثم الوصول لخصائصه
نقوم ببناء الغرض من خلال freez لكي لا يتم تعديله module.exports = Object.freeze({ REQUEST_SENT_SUCCESSFULLY: "We got your request.", }); import ConstantsList from './constants'; console.log(ConstantsList.REQUEST_SENT_SUCCESSFULLY)
-
إجابة Wael Aljamal سؤال في RenderCustomMultiChildLayoutBox object was given an infinite size during layout. كانت الإجابة المقبولة
يوجد ويدجت اسمها Expanded widget يمكنها ملئ الحاوية الأب لها بدون ترك فراغ، ثم يمكن بناء باقي العرض بالنسبة لها مثل أخذ العرض 100% والطول ..
قم بتغليف المكون الذي يسبب مشكلة بها، والحاوية الداخلية تصبح SizedBox وتعطيها القياسات المناسبة
يوجد الحزمة expandable package يمكن أن تفيدك
-
إجابة Wael Aljamal سؤال في خطأ A Route is only ever to be used as the child of element في React.js؟ كانت الإجابة المقبولة
أنت تضع مكون أو أكثر من Route ضمن عنصر div بشكل أولاد مباشرين له، وهنا الخطأ، حيث أن المسار لا يتم عمل render له مباشرة، بل يجب أن يكون ابن لعنصر Routes
function App() { return ( <div> <Routes> <Route path = "/"> <div>Home Page</div> </Route> <Route path = "/about"> <div>About Us Page</div> </Route> </Routes> </div> ); }
-
إجابة Wael Aljamal سؤال في كيفية تحويل الأرقام من float إلى integer في Pandas في بايثون Python؟ كانت الإجابة المقبولة
انتبه من تطبيق التعديل للنمط على جميع الأعمدة من الملف، إن كان هنالك عمود واحد بحاجة لتعديل نمطه يمكن تحديده بالشكل التالي:
df['col'] = df['col'].astype('int') أو تحديد عدة أعمدة في قاموس مع النمط المراد التغيير له
df = pd.DataFrame({ 'A': [1, 2, 3, 4, 5], 'B': ['a', 'b', 'c', 'd', 'e'], 'C': [1.1, '1.0', '1.3', 2, 5] }) # تحديد عدة أعمدة في قاموس مع النمط المراد التغيير له convert_dict = { 'A': int, 'C': float } df = df.astype(convert_dict)
-
إجابة Wael Aljamal سؤال في كيفية الحصول على مسار مجلد الملفات المؤقتة temp في بايثون Python؟ كانت الإجابة المقبولة
يمكنك الاعتماد على الحزمة tempfile
import tempfile print tempfile.gettempdir() # طباعة مسار مجلد التخزين المؤقت الحالي f = tempfile.TemporaryFile() f.write('كتابة بيانات مؤقتة') f.seek(0) # العودة لبداية الملف print f.read() # إعادة قراءة البيانات للتأكد من كتابتهم خلال التجريب f.close() # سيتم حذف الملف المؤقت حال إغلاق الاتصال
-
إجابة Wael Aljamal سؤال في كيفية تعطيل ميزة التمرير Scroll في الصفحة عبر JavaScript؟ كانت الإجابة المقبولة
يوجد تعديل بسيط في CSS يمكن القيام به بواسطة جافاسكربت وهو تعديل ارتفاع الصفحة لتملأ الشاشة 100% مع إخفاء overflow وبذلك يتوقف Scroll ثم نعيدهم لما كانت عليه عند الانتهاء من التحريك (أي ننفذ الشيفرتين في بداية و نهاية جزء التحريك)
/* في بداية التحريك */ $('html, body').css({ 'overflow': 'hidden', 'height': '100%' }) /* ثم نعيدها لما كانت عليه */ $('html, body').css({ 'overflow': 'auto', 'height': 'auto' })
-
إجابة Wael Aljamal سؤال في هل هناك طريقة للتراجع عن عملية تهجير البيانات migration في جانغو Django؟ كانت الإجابة المقبولة
أول خطوة هي استعراض التهجيرات السابقة بحيث أن الأمر التالي يستعرض أسماء التهجيرات:
./manage.py showmigrations my_app يستعرض الأمر حالة التهجيرات السابقة ثم إن افترضنا أن لديك تهجير جديد و تريد العودة لما قبله (مثال):
0010_previous_migration # الهدف 0011_migration_to_revert # للتخطي ثم نقوم بأمر التهجير لاسم الملف الهدف، أو نستخدم الرقم وحده يكفي
./manage.py migrate my_app 0010_previous_migration ./manage.py migrate my_app 0010 حيث أن الشكل العام للأمر:
python manage.py migrate <APP_NAME> <MIGRATION_NUMBER_PREFIX> ثم تأكد من إتمام المهمة بتغيير حالة التهجيرات
./manage.py showmigrations my_app للتراجع عن جميع التهجيرات نمرر zero ./manage.py migrate my_app zero
-
إجابة Wael Aljamal سؤال في خطأ 'charmap' codec can't encode characters في مكتبة Beautifull soup في بايثون كانت الإجابة المقبولة
المشكلة لديك في نوع الترميز، استخدم utf8 بعد تطبيق soup
لتستطيع بايثون طباعتها
soup = BeautifulSoup(html).encode("utf-8") أو print(soup.encode("utf-8")) يمكن تعديل نمط الترميز للمدخلات القياسية من خلال الشيفرة
sys.stdin.reconfigure(encoding='utf-8') sys.stdout.reconfigure(encoding='utf-8') ضعهم في أول الملف أو من خلال تغيير متغيرات البيئة بتنفيذ
set PYTHONIOENCODING=utf-8 set PYTHONLEGACYWINDOWSSTDIO=utf-8 -
إجابة Wael Aljamal سؤال في كيفية توليد صورة من خلال مصفوفة numpy في بايثون Python؟ كانت الإجابة المقبولة
يمكن استعمال:
matplotlib وهي مكتبة للرسوميات الثابتة و المتحركة والتفاعلية الوسيط interpolation لملأ الفراغات nearest نضع لون النقطة حسب أقرب نقطة أخرى لها imshow يستخدم لإخراج صورة من مصفوفة show يفتح العرض للصورة from matplotlib import pyplot as plt plt.imshow(data, interpolation='nearest') plt.show() يمكن أيضا استخدام PIL
#استيراد صنف التعامل مع الصور from PIL import Image # شيفرتك img = Image.fromarray(data, 'RGB') #بناء صورة ملونة img.save('my.png') # حفظ الملف img.show() # عرضه وطريقة أخرى باستعمال scipy والدالة toimage نمرر لها المصفوفة و نطبق دالة العرض
from scipy.misc import toimage toimage(data).show()