Mohammad Al Eik
الأعضاء-
المساهمات
199 -
تاريخ الانضمام
-
تاريخ آخر زيارة
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Mohammad Al Eik
-
في البداية نريد ان نستدي المكتبات التالية : from PIL import Image import base64 import io ثم نختار الصورة التي سننقلها إلى المستخدم ونقرأها بمساعدة PIL im = Image.open("test.jpg") #NOTE : يجب عليك التأكد من صحة مسار الملف بعد ذلك ، باستخدام BytesIO نحصل على المعلومات الموجودة في الذاكرة لحفظ الصورة التي قرأناها للتو. data = io.BytesIO() ثم نستخدم المعلومات الموجودة في الذاكرة التي حصلنا عليها باستخدام BytesIO في وظيفة save () داخل مكتبة PIL. im.save(data, "JPEG") ثم نقوم بترميز ملف الصورة المحفوظ بإستخدام مكتبة base64 encoded_img_data = base64.b64encode(data.getvalue()) بعد العمليات المذكورة أعلاه ، أصبحت صورتنا جاهزة الآن لإرسالها. أصبح لدينا الكود الكامل على الشكل التالي from flask import Flask, render_template from PIL import Image import base64 import io app = Flask(__name__) @app.route('/') def hello_world(): # Full Script. im = Image.open("test.jpg") data = io.BytesIO() im.save(data, "JPEG") encoded_img_data = base64.b64encode(data.getvalue()) return render_template("index.html", img_data=encoded_img_data.decode('utf-8')) if __name__ == '__main__': app.run(host='0.0.0.0') وفي ملف ال html نتعامل مع الصورة المستقبلة بالشكل التالي <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Test Image</title> </head> <body> <img id="picture" src="data:image/jpeg;base64,{{ img_data }}">//هنا نضع خصائص الصورة </body> </html>
- 1 جواب
-
- 2
-
جرب أن تقوم بتغيير إصدار الحزمة في البداية composer require laravel/ui:^2.4 ثم قم ب php artisan ui vue
- 12 اجابة
-
- 1
-
سبب المشكلة لديك هو مشكلة تضارب لأنك تقوم بتسمية كلاس ال view بنفس اسم ال Model وهذا يؤدي إلى إستخدام كلاس ال view بدلاً عن كلاس model لذلك عليك أختيار اسم اخر مثل ProductView class ProductView(View): model = Product def get(self, request, resource_id): resource = get_object_or_404(Product, pk=resource_id) context = { 'resource': resource } return render(request, 'product.html', context)
- 1 جواب
-
- 1
-
لرفع عدة ملفات بإستخدام مكتبة multer باستعمال ال method التالية array بدلاً عن single وهذا مثال توضيحي router.post('/projects', upload.array('uploadedImages'), function(req, res) { var file = req.files; res.end(); });
-
قم بإنشاء هذان الملفان في المجلدات التالية resources/sass/_variables.scss resources/js/bootstrap.js ثم قم بتنفيذ npm install وسوف تحل المشكلة
- 12 اجابة
-
- 1
-
أظن المشكلة لديك هو عدم العثور على مكتبة numpy و fuzzy_expert يجب عليك تحميلهم بإتباع الخطوات التالية : نفذ التالي في موجه الأوامر pip install numpy pip install fuzzy_expert
-
لم أفهم مشكلتك بالضبط . هل المشكلة أن ال navigator لايبقى ظاهراً في كل السكرينات ؟ أي انه لايبقى ثابت ويختفي عندما تنتقل لصفحة معينة ؟ أرجو التوضيح أكثر ..
- 4 اجابة
-
- 1
-
أرجو أن تقوم بإرفاق الكود الخاص بك لكي استطيع مساعدتك
- 7 اجابة
-
- 1
-
يمكنك القيام بذلك باستخدام مكتبة بوتستراب فهي الطريقة الأسهل والأكثر أستقرار بالطريقة التالية : <div class="carousel slide" data-bs-ride="carousel">//هنا نضع المحددات من مكتبة بوتستراب ك صفوف <div class="carousel-inner"> <div class="carousel-item active" data-bs-interval="10000"> <img src="..." class="d-block w-100" alt="...">//السللايد الأول </div> <div class="carousel-item" data-bs-interval="2000"> <img src="..." class="d-block w-100" alt="...">//السلايد الثاني </div> <div class="carousel-item" data-bs-interval="2000"> <img src="..." class="d-block w-100" alt="...">// السلايد الثالث </div> </div> //هنا نضع أزرار التالي والسابق للتنقل بين السلايدات <button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleInterval" data-bs-slide="prev"> <span class="carousel-control-prev-icon" aria-hidden="true"></span> </button> <button class="carousel-control-next" type="button" data-bs-target="#carouselExampleInterval" data-bs-slide="next"> <span class="carousel-control-next-icon" aria-hidden="true"></span> </button> </div> قمنا في الاعلى بتحديد المدة الزمنية بالميلي ثانية لكل سلايد عند الخاصية : data-bs-interval="10000" أي ان الصورة الأولى ستظهر لمدة عشر ثواني ثم ستنتقل للصورة الثانية التي سوف تظهر لمدة ثانيتين وهكذا… لكن يجب عليك تضمين مكتبة البوتستراب لكي يعمل عندك الكود السابق, يمكنك إتباع التالي : أولاً : يجب عليك وضع هذا الكود داخل تاغ ال <head> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous"> ثانياً : ضع الكود التالي في نهاية تاغ ال <body> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>
-
نعم صديقي في هذه الدورة سوف تتعامل مع لغة جافاسربت لإنشاء تطبيقات ويب وتطبيقات موبايل وتطبيقات المخدم وتطبيقات كمبيوتر. فلغة JavaScript هي لغة برمجة تُستخدم على جانب المستخدم وجانب المخدم والتي تتيح لك جعل صفحات الويب تفاعلية. أما HTML و CSS هي لغات تعطي بنية وشكلاً لصفحات الويب. يستخدم JavaScript بشكل أساسي للتطبيقات المستندة إلى متصفحات الويب. ولكن يتم استخدام JavaScript أيضًا خارج الويب في البرامج والخوادم. فيما يلي بعض الأشياء الأساسية التي يتم استخدام JavaScript من أجلها: إنشاء تطبيقات الويب والجوال : يمكن للمطورين استخدام العديد من أطر عمل JavaScript لتطوير وبناء تطبيقات الويب والجوال IOS و Android. أطر عمل جافا سكريبت عبارة عن مجموعات من مكتبات كود جافا سكريبت التي تزود المطورين بتعليمات برمجية مكتوبة مسبقًا لاستخدامها في البرمجة الروتينية. تتضمن أطر عمل JavaScript الأمامية الشائعة React و React Native و Angular و Vue بناء خوادم الويب وتطوير تطبيقات الخادم بالإضافة إلى مواقع الويب والتطبيقات ، يمكن للمطورين أيضًا استخدام JavaScript لإنشاء خوادم ويب بسيطة وتطوير البنية التحتية الخلفية (Backend development) باستخدام Node.js. بناء تطبيقات PC بإستخدام (ElctronJs) لماذا استخدام JavaScript على لغات البرمجة الأخرى؟ JavaScript هي لغة البرمجة الوحيدة الأصلية لمتصفح الويب JavaScript هي اللغة الأكثر شيوعًا سهلة التعلم
- 2 اجابة
-
- 1
-
نعم بإمكان المستخدم التعديل على الكوكيز لكن ميزتها عن ال local storage هي العمر الإفتراضي للقيمة. أما عن أنك تقوم بتعديل الكوكيز فيتعطل الموقع.. هذا لن يحدث , بسبب عملية المصادقة التي تتم بواسطة ال token , سوق أوضح لك الفكرة كالأتي: عندما تسجل دخولك إلى موقع مستقل يعطي المخدم token يتم تخزينه في المتصفح في ال cookies وهذا التوكين عبارة بجمع عدة بيانات وتشفيرها وأي تعديل على هذا التوكين من قبل المستخدم سوف تفشل عملية المصادقة بين المخدم والمستخدم ولن يعود بإمكانه القيام العمليات داخل الموقع. أي ان ممكن ان يتوقف الموقع عن العمل بالنسبة اليك أما عند باقي المستخدمين لن يحدث شيئ كهذا.
- 5 اجابة
-
- 3
-
لقد عدلت الكود كان هناك خطأ في نوع كلمة false "false" =====> false عدل كلمة "false" واجعلها من دون " " عذراً لهذا الخطأ صديقي
- 7 اجابة
-
- 1
-
بلى صديقي بإمكانك تتبع الكود في اول مرة تكون قيمة المتغير false وهنا لن ينفذ ال==إلا إذا كانت قيمة المتغير false حسب الشرط window.onscroll = function() { if(firstScroll===false){//لن ينفذ التابع إلا إذا كانت قيمة المتغير false scrollLoad() } }; وعندما يدخل الى جسم التابع نحول القيمة الى true كي لا يتحقق الشرط السابق مرة اخرى
-
بإمكانك تخزين المعلومات ك token في ال cookies (إعدادات ملفات تعريف الارتباط) التابع التالي يقوم بالتخزين في cookies function setCookie(name,value,days) { var expires = ""; if (days) {//هنا نحسب مدة الصلاحية لهذا التوكين تبعً لعدد الأيام التي مررناها var date = new Date(); date.setTime(date.getTime() + (days*24*60*60*1000));//عملية تحويل الايام إلى ميلي ثانية expires = "; expires=" + date.toUTCString(); } document.cookie = name + "=" + (value || "") + expires + "; path=/";//هنا عملية الوصول الى الكوكيز من المتصفح وتخزين القيم النهائية فيها } التابع التالي يقوم باستدعاء القيم من ال cookies function getCookie(name) { var nameEQ = name + "="; var ca = document.cookie.split(';'); for(var i=0;i < ca.length;i++) { var c = ca[i]; while (c.charAt(0)==' ') c = c.substring(1,c.length); if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); }//نقوم بعمليات على السترنغ return null; } وهكذا نقوم بتنفيذ التوابع setCookie('token','1234hjk',7); var x = getCookie('token');//نقوم بتمرير اسم المفتاح الذي نريده if (x) { //استعمل التوكين هنا } الطريقة السابقة في حال كنت تستخدم vanilla javascript في حال كنت تستخدم رياكت فبإمكانك إستعمال هذه المكتبة react-cookie
- 5 اجابة
-
- 1
-
يمكنك اضافة متغير نحفظ فيه أن التابع قد تنفذ أم لا ك boolean var firstScroll = false;//نضع هذا المتغير كقيمة إفتراضية window.onscroll = function() { if(firstScroll===false){//لن ينفذ التابع إلا إذا كانت قيمة المتغير false scrollLoad() } }; function scrollLoad() { if (document.body.scrollTop > 1 || document.documentElement.scrollTop > 1) { firstScroll = true;//نغير قيمة المتغير إلى ترو لكي لاينفذ مرة اخرى createLinkCss('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css','head'); }
-
يمكنك القيام بعرض أي شيء تريده عند تحميل الصفحة لكن يجب عليك اولاً التنصت على حدث تحميل الصفحة بالطريقة التالية باستخدام jquery $(document).ready(function(){ // الكود الذي تريد تنفيذه عتد تحميل الصفحة }); وفي الحالة التي تسأل عنها أنت يعرض الموقع modal أي نافذة منبثقة يمكنك تنفيذ شبيه لها بإستخدام bootstrap مع الكود السابق لعملية التنصت , كالتالي: <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <link rel="stylesheet" href="css/bootstrap.min.css"> <script src="js/jquery-3.5.1.min.js"></script>//استدعاء مكتبة جيكويري <script src="js/bootstrap.min.js"></script>//استدعاء مكتبة بوتستراب <script> $(document).ready(function(){ $("#myModal").modal('show');//هنا نقوم بعملية تحديد العنصر الذي نريد ان نظهره عبر المحدد أي دي }); </script> </head> <body> <div id="myModal" class="modal fade"> <div class="modal-dialog"> <div class="modal-content"> <form> <div class="form-group"> <input type="text" class="form-control" placeholder="Name"> </div> <button type="submit" class="btn btn-primary">Subscribe</button> </form> </div> </div> </div> </body> </html>
- 7 اجابة
-
- 1
-
يمكنك القيام بالتالي SELECT Department, COUNT(*) AS Number //هنا نقوم بعد الأسطر المحققة للشرط FROM Employee // هنا نضع الشرط WHERE salary > 750000 GROUP BY Department; في هذا المثال ، ستُرجع الدالة COUNT عدد الموظفين الذين يزيد دخلهم عن 750000 لكل قسم. نظرًا لعدم تضمين عمود Department في دالة COUNT ، يجب إدراجه في عبارة GROUP BY.
-
يمكنك ذلك بتنفيذ التعليمة التالية : بما أنه هناك علاقة بين الجدولين عبر Employee_id SELECT Incentives.Employee_ref_id, //نريد استدعاء آيدي الموظف Employee.First_name //واسم الموظف From Incentives //من جدول JOIN Employees //تُستخدم لدمج صفوف من جدولين أو أكثر ، بناءً على عمود مرتبط بينهما. ON Incentives.Employee_ref_id=Employee.Employee_id //نحدد الأسطر التي نريد دمجها
- 5 اجابة
-
- 1
-
Select * //تحديد كل الأعمدة ,SUM(Salary) as total_salary //مجموع الرواتب FROM Employee // من جدول الموظفين WHERE First_name LIKE 'J%' // واعرض السطر الذي يطابق الشرط الأول OR First_name LIKE '%Ch%' //او الشرط الثاني GROUP BY Department //تجميع فئات حسب القسم ORDER BY total_salary ASC //ترتيب حسب مجموع الرواتب
-
يمكنك بواسطة تعليمة لايك التي تقوم بالتعامل مع النصوص ويمكنك استخدامها بالطريقة التالية حيث اشارة النسبة المؤية بعد المحرف تعني انه يبدأ بهذا المحرف اما بين علامتين مؤيتين تعني أنه لايهم موضعه ولكن يجب أن يكون موجودا Select * //تحديد كل الأعمدة FROM Employee // من جدول الموظفين WHERE First_name LIKE 'J%' // واعرض السطر الذي يطابق الشرط الأول OR First_name LIKE '%Ch%' //او الشرط الثاني
- 4 اجابة
-
- 1