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

لوحة المتصدرين

  1. Ali Haidar Ahmad

    Ali Haidar Ahmad

    الأعضاء


    • نقاط

      9

    • المساهمات

      1068


  2. سامح أشرف

    سامح أشرف

    الأعضاء


    • نقاط

      8

    • المساهمات

      2934


  3. Wael Aljamal

    Wael Aljamal

    الأعضاء


    • نقاط

      7

    • المساهمات

      6975


  4. Hassan Hedr

    Hassan Hedr

    الأعضاء


    • نقاط

      5

    • المساهمات

      2851


المحتوى الأكثر حصولًا على سمعة جيدة

المحتوى الأعلى تقييمًا في 09/07/21 في كل الموقع

  1. عندما اقوم بإستخدام الbody parser تأتينى رسالة انه اصبح deprecated فما اذا البديل له؟
    2 نقاط
  2. قمت بعمل dataframe كالتالي: df = DataFrame(index=['A','B','C'], columns=['D','E']) >>> df D E A NaN NaN B NaN NaN C NaN NaN وأريد وضع قيمة في خانة معينة بناء على مكان الخانة index بحيث تظهر كالتالي: D E A NaN NaN B NaN NaN C 20 NaN كيف يمكنني فعل هذا؟
    2 نقاط
  3. دورة علوم الحاسب هي دورة عامة في مجال البرمجية، تعطيك فكرة جيدة عن مجالات متنوعة وهي تهتم بمبدائ البرمجة و الخوارزميات و أساسيات التفكير المنطقي، وأساسيات HTML - CSS وسطر أوامر لينوكس وقةاعد البيانات.. أي تجعلك مهيأ للدخول في أي مجال و التخصص لاحقاً، مثل مطور واجهات أمامية أو خلفية أو برمجة تطبيقات الهاتف.. بالنسبة لدورة PHP ستتعلم النظم الخلفية وكيفية بناء المشاريع وكيفية تواصل الواجهات الأمامية مع المخدم (الواجهات الخلفية) وأنواع طلبات HTTP methods، وأساسيات PHP والدوال فيها والأصناف وكل مايلزمك للتعامل معها.. ثم ستتعلم إطار عمل Laravel مع تطبيقات و مشاريع عليه والكثير غيرهم.. كملخص، يوجد العديد من الفروقات بينهم، إن لم يكن لديك أي خلفية برمجية يفضل الدخول من باب دورة علوم الحاسب ثم الانتقال لدورة PHP.. أيضا الاشتراك في دورة PHP يفتح لك مسار الأساسيات في دورة علوم الحاسب وهي مفيدة لك إن لم تشترك بدورة علوم الحاسب. لمعلومات أكثر تصفح كل من الدورتين، مقالات مفيدة:
    2 نقاط
  4. كيفية تقليل الشفافية الخاصة بعنصر دون التأثير على النص بداخل العنصر
    2 نقاط
  5. أريد أن يتمكن المستخدمون على الموقع من تنزيل الملفات التي تكون مساراتها محجوبة حتى لا يمكن تنزيلها مباشرة. على سبيل المثال، أود أن يكون عنوان URL مثل هذا: http://example.com/download/?f=somefile.txt وعلى الخادم، أعلم أن جميع الملفات القابلة للتنزيل موجودة في المجلد /home/user/files/ بشكل إفتراضي. هل هناك طريقة لجعل جانغو Django يقدم هذا الملف للتنزيل بدلاً من محاولة العثور على عنوان URL ووضعه في view مخصص؟
    1 نقطة
  6. ألاحظ دوماً أنه يتم ضبط عدد ال hidden units على 128 في طبقات LSTM و GRU لماذا؟ أي num_units=128 ؟ أعلم أنها وحدات معالجة البيانات لكن إلى ماذا يشير عددها؟
    1 نقطة
  7. بعد فترة من الزمن ظهر لي الخطأ التالي من طرف خادم الويب node.js: (node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit. Trace: at EventEmitter.<anonymous> (events.js:139:15) at EventEmitter.<anonymous> (node.js:385:29) at Server.<anonymous> (server.js:20:17) at Server.emit (events.js:70:17) at HTTPParser.onIncoming (http.js:1514:12) at HTTPParser.onHeadersComplete (http.js:102:31) at Socket.ondata (http.js:1410:22) at TCP.onread (net.js:354:27) أين يجب أن استخدم التابع emitter.setMaxListeners ؟ وما هو العدد الأعظمي الذي يمكنني الوصول إليه؟
    1 نقطة
  8. أريد أن أعرف الفرق بين الدالة groupby("x").count و groupby("x").size
    1 نقطة
  9. هل يظهر لك خطأ أو تحذير ما؟ أرفقه من فضلك أو يمكنك ارفاق ملفات مشروعك بشكل مضغوط بدون ملف node_modules لاتمكن من مساعدتك
    1 نقطة
  10. DocumentDirectoryPath هو ثابت توفره المكتبة ويدل على جذر ملفات المشروع داخل الهاتف (لا يهم سوى معرفتك أنه جذر كل الملفات لمشروعك)
    1 نقطة
  11. المعذرة لكن كيف لي معرفة DocumentDirectoryPath ؟ من فضلك لم افهم تحديدا ما علي فعله
    1 نقطة
  12. أنا أعمل على مشروع جانغو Django باستخدام virtualenv منذ عدة أيام وربطته بقاعدة بيانات postgres المحلية. لكن عندما أقوم بتشغيل المشروع على خادم Ubuntu يظهر لي الخطأ: ImportError: No module named psycopg2.extensions لذلك حاولت أن أقوم بتثبيت حزمة psycopg2 ولكن ظهر لي خطأ أثناء التثبيت: warning: manifest_maker: standard file '-c' not found Error: You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application. كيف أقوم بتثبيت حزمة psycopg2 بشكل صحيح حتى يعمل المشروع؟
    1 نقطة
  13. ليس هناك فائدة ربحية مباشرة من مثل هذه المشاريع المجانية، فهي تكون عادة جزء من عدة مشاريع تمتلكها الشركة وفائدتها تقع ضمن الاستراتيجية العامة للشركة لذلك تستثمر فيها الشركة وتقدمها بالمجان، وأحيانا فقط تكون تطوعية خيرية موسوعة حسوب مرجع للمطورين باللغة العربية، الفائدة هي اغناء لغة التخاطب بين المطورين العرب وتسهيل الفهم لشريحة أكبر من المبرمجين لكي يستطيعو الدخول في سوق العمل التي تعمل ضمنه شركة حسوب VSCode أداة مفيدة للمطورين ترفع من انتاجيتهم وبالتالي اغناء السوق البرمجي التي تعمل ضمنه Microsoft
    1 نقطة
  14. يمكنك حل المشكلة من خلال عمل custom template filter، كالتالي: from django.template.defaulttags import register @register.filter def lookup(dict, k): return dict.get(k) أستخدم .get بحيث إذا لم يكن المفتاح موجود في القاموس، فإنه يُرجع None بدلًا من أن يظهر خطأ KeyError بعد ذلك. ويمكنك أن تستخدم الفتلر السابق، على النحو التالي: {% for item in list %} {{ user|lookup:item.NAME }} {% endfor %} وفي حالة كنت تستعمل قوالب Jinja2، فهي تدعم جلب القيم من خلال متغيرات بشكل إفتراضي على النحو التالي: {{ user[item] }} أيضًا إن كنت تقوم بالمرور على القيم من القاموس، فتستطيع أحضار كلاً من المفتاح والقيمة من القاموس في الحلقة، بالشكل التالي: {% for key, value in user.items %} {{ value }} {% endfor %}
    1 نقطة
  15. المشكلة أن الدالة تقبل فقط مسار مطلق لمكان الملف ولا تقبل مسار نسبي يمكنك استخدام الحزمة "react-native-fs" لمعرفة المسار المطلق للجذر ثم تضيف اليه المسار النسبي من جذر المشروع للملف المطلوب كالتالي import RNFS from 'react-native-fs'; OpenAnything.Pdf(`${RNFS.DocumentDirectoryPath}/PDF/quran.pdf`)
    1 نقطة
  16. مساء الخير لو انا اخدت دورة php من أكاديمية حسوب الدورة هتخليني مطور نظم خلفية محترف ولا ادرس علوم الحاسب الأول وايه الفرق
    1 نقطة
  17. سؤال مبتدئ فى عالم البرمجة. عرفت ان ال Front End هو المسئول عن تصميم الشكل الخارجى للموقع و قوائم و الالوان باستخدام HTML , CSS , JS و بدأت فعلا فى دورة تطوير واجهات المستخدم المتاحة على حاسوب. و لكن بصفتى مبتدئ فيوجد عندى خلط فى بعض المفاهيم فمثلا اعلم ان لغة PHP تستخدم فى ال Back end ... فبعد ان تعلمت بعض الدروس فى HTML و CSS ذهبت ل Template موقع اعمل عليه على استضافة هوستنجر بهدف تغيير بعض قوائم و الوان و الصور فى الموقع و لكن فوجئت ان الكود PHP .. فهل باستخدام PHP يمكن تصميم موقع كامل بدون الحاجة ل HTML و CSS و JS ام ان كود ال PHP لا بد من وجود كود HTML معه يختص بتصميم واجهة المستخدم. اعذرونى قد يبدو السؤال غير مرتب او بديهى للبعض لانى مبتدئ ... القصد من السؤال هل ب اتمامى ل دورة الفرونت اند استطيع بناء موقع بدون الحاجة الى باك اند .. و ان كانت الاجابة لا. هل استطيع التعديل على اى Template من حيث واجهة المستخدم ام يلزمنى ايضا تعلم ال Back end ؟
    1 نقطة
  18. قد يكون سؤالك متشعب كثيرا كونك لم تحدد ما تقصده بالضبط بـ "التعديل على الكود و بناء المواقع " , فعملية بناء المواقع عملية متسلسة و تتفرع إلى كثير من التخصصات و يستعمل فيها الكثير من اللغات . فالمواقع و تطبيقات الويب بصفحة عامة تنقسم إلى قسمين : واجهات خلفية Backend : تمثل كل العمليات و المنطق الحاصل على مستوى الخادم , يتم في هاته المرحلة عادة بناء واجهات تطبيق برمجية لتسهيل ربطها مع الواجهة أو الواجهات الأمامية . واجهات أمامية Frontend : تمثل مجموع التصاميم و التفاعليات و بنى العناصر , يتم في مرحلة بناء الواجهات الأمامية بناء شاشات و قوالب قد تكون تفاعلية و قد تكون صماء . و كون أغلب العمليات تبتدئ من الخادم فسيكون المسؤول الأول عن عرض الصفحة لديك بشكل أو بتنسيق أو تفاعلية معينة , و لذلك نجد صفحات بلواحق php. تحمل شيفرات واجهات أمامية من مثل HTML أو جافاسكربت أو CSS . و لذلك فإن التعديل على هاته الصفحات يكون موجها و مقيدا بالهدف من التعديل : فإن كان الهدف التعديل على الواجهات الأمامية , مثل القوالب , فسيمكن مباشرة التعديل على بنية الـ HTML أو الملفات أو الأسطر المسؤولة عن تنسيق العناصر أو عن تفاعليتها , دون المساس بأي منطق داخل محددي الـ PHP : <?php // PHP هنا شيفرة ?> <div class="container-fluid"> .. </div> <?php // PHP هنا شيفرة ?> أما ان كان الهدف تغيير طريقة تعامل الخادم مع الطلبات و كل عمليات الخادم فسيتطلب التعديل على ما داخل المحددين , و إن لزم خارجهما . فاﻷول هو ما يقوم به مطورو الواجهة الأمامية , و الثاني هو ما يقوم به مطورو الواجهة الخلفية . نعم يمكن و هو المفترض أن يكون , فلا دخل لما يحدث على الواجهة الخلفية في الواجهة الأمامية . و قد لا تتطلب الكثير من التطبيقات و المواقع واجهة خلفية أصلا , مثل قوالب الـ HTML أو صفحات العرض أو أي من المواقع ثابتة المحتوى . و لذلك فإن إستعمال HTML , JS , CSS كاف جدا بهذا الخصوص . التعديل على واجهات المستخدم لا يلزم في الغالب أي معرفة مسبقة بخصوص الواجهات الخلفية في التطبيقات و المواقع المبنية بتنظيم , و لكن كون الواجهة الخلفية هي المحرك الأول فسيكفي - في الغالب - امتلاك معرفة سطحية لسهولة التصفح و التنقل بين الملفات و فهم الشيفرة , قبل على التعديل على ما يخص الواجهة الأمامية منها .
    1 نقطة
  19. اريد الولوج للمسار /boot/efi فى نظام لينكس لكن يعطينى خطأ sudo: cd: command not found
    1 نقطة
  20. السلام عليكم لدي مشروع React عملت عليه و أريد رفعه على استضافة مجانية لعرضه على المستخدمين مثل رفع واجهات المواقع HTML-CSS-JS على GitHup و عرضها على المستخدمين من خلال رابط قمت بالفعل برفع المشروع على GitHup لكن عند الدخول على الرابط لا يظهر الموقع بالتظهر اكواد ملفات React في المجلدات هل تسمح GitHup برفع مشاريع React مجانا ؟ و ما هي الاستضافت المجانية و المدفوعة التي تسمح برفع مشاريع React عليها و عرضها على المستخدم
    1 نقطة
  21. ذلك لأنك تقوم برفع ملفات رى أكت دون أن تقوم بعمل build , يجب أن تقوم بعمل عملية build حتى تستطيع من رفع الملفات على git-hub ويمكنك إتباع الخطوات الأتية لرفع مشروعك على github-pages تأكد من تثبيت كلاً من node, npm, git على حاسوبك تثبيت gh-pages ك dev-dependency npm install gh-pages --save-dev ضع خاصية الhomepage في ملف الpackage.json { ......, homepage:"http://{اسم المستخدم الخاص بك}.github.io/إسم المستودع" } ضع scripts تقوم بعملية الbuild بإستخدام الnodeوال gh-pages حتي يتم نشر تطبيقك على الموقع "scripts": { //... "predeploy": "npm run build", "deploy": "gh-pages -d build" } بالطبع تلك الscripts سيتم كتابتها فى الpackage.json قم بإنشاء مستودع على git hub git init git remote add origin {رابط المستودع} والأن قم بعملية deploy npm run deploy مبروك تم رفع التطبيق ستجده في فرع gh-pages في github , بالإضافة لذلك ستجد التطبيق يعمل بشكل حي من خﻻل الرابط الذي وضعته في الhomepage في ملف package.json
    1 نقطة
  22. ما الفرق بين async/await والpromises
    1 نقطة
  23. إن كانت الشفافية لديك متعلقة بلون الخلفية، لا تضع خاصية opacity لأنه يتم وراثتها في css للأولاد وتطبق عليهم لذلك، استبدل الشيفرة التالية: background-color: rgb(0,0,255); opacity: 0.5; ^^^^ ^^^^^^^^^ بإضافة معامل الشفافية للون الخلفية لديك أي المعامل alpha في rgba: background-color: rgba(0,0,255,0.5); ^^^^ ^^^^ هذا يعطي نفس التأثير.. ربما تحتاج لعمل rgba مرتين مع إلغاء الشفافية اللونية للعنصر الابن: .parent { background-color: rgba(0,0,0,0.5); } .child { background-color: rgba(128,128,128,0); }
    1 نقطة
  24. طالما أنك لم تعطنا مصدر البيانات فلايمكننا تحديد المشكلة، لكن هناك احتمالين الأول هو أنه هناك مسافات فارغة (وحلها كما أشار أيضاً)، أو أن هناك separator مختلف فافتراضياً يكون الفاصل هو "," لكن ليس بالضرورة دوماً لذا يجب عليك: إذا كنت تعرف نوع ال separator فقم بتعيينه مباشرة للوسيط. أو إذا لم تكن تعرفه قم بفتح ملف ال csv وتحقق من نوع ال separator. على سبيل المثال إذا كان ; نقوم بقراءة البيانات بالشكل: pd.read_csv("D:\\data.csv", sep=';')
    1 نقطة
  25. هذا هو سير العمل الحالي الخاص بي لاستيراد الصور والأيقونات في webpack عبر ES6: import cat from './images/cat1.jpg' import cat2 from './images/cat2.svg' import doggy from './images/doggy.png' import turtle from './images/turtle.png' <img src={doggy} /> لكن هذا سرعان ما يصبح فوضوي وأريد شئ مثل هذا import * from './images' <img src={doggy} /> <img src={turtle} /> هل هناك طريقة ما لاستيراد جميع الملفات ديناميكيًا من دليل معين كملحق لاسمها ، ثم استخدام هذه الملفات حسب الحاجة.
    1 نقطة
  26. لدي بعض الشيفرات البرمجية التي سيتم تنفيذها بطرق مختلفة تبعاً لنظام التشغيل. ففي حال كان نظام التشغيل ويندوز أرغب بتنفيذ عمليات معيّنة وهكذا بالنسبة لبقية الأنظمة. هل يوجد طريقة أستطيع من خلالها معرفة أو اختبار شرط نظام التشغيل الذي يعمل عليه node.js ضمن المشروع؟
    1 نقطة
  27. يمكنك تجربة أحد الحلول التالية dfObj['Hash Key'] = (dfObj['DEAL_ID'].map(str) +dfObj['COST_CODE'].map(str) +dfObj['TRADE_ID'].map(str)).apply(hash) print(dfObj['hash']) أو الكود التالي import pandas as pd df=pd.read_csv("file.txt", skipinitialspace=True) df.head() df['review']
    1 نقطة
  28. لنفترض أنك قمت بتعريف هذا العنوان في عناوين urls.py الخاصة بك: url(r'^something$', some_view, name='something_name'), في النموذج ، يمكنك بعد ذلك الرجوع إلى عنوان url هذا من خلال اسمه على النحو التالي: <!-- django <= 1.4 --> <a href="{% url something_name %}">رابط إلى some_view</a> <!-- django >= 1.5 --> <a href="{% url 'something_name' %}">رابط إلى some_view</a> <!-- أو كالتالي --> <a href="% load url from future %}">رابط إلى some_view</a> سيتم عرض هذا، كالتالي: <a href="/something/">رابط إلى some_view</a> لاحظ كيف تم عرض مسار الرابط الكامل. لنفترض الآن أنك تريد أن تفعل شيئًا مشابهًا في views.py - على سبيل المثال أنت تتعامل مع بعض عناوين URL الأخرى (ليس /something/) في ملف عرض أخر (وليس some_view) وتريد إعادة توجيه المستخدم إلى /something/ (غالبًا ما يحدث عند إرسال نموذج form ناجح). وللقيام بذلك يمكنك إستخدام الكائن HttpResponseRedirect كالتالي: return HttpResponseRedirect('/something/') ولكن ماذا لو كنت تريد تغيير عنوان URL في المستقبل؟ يجب عليك تحديث الملف urls.py وجميع المراجع إليه في كل الكود الخاص بالمشروع. وليس من الجيد القيام بذلك لأنه يستغرق الكثير من الوقت وجهد وكذلك يعرض الموقع للأخطاء، والأفضل هو التعديل في مكان واحد فقط. بدلاً من ذلك، يمكنك إستخدام التالي: from django.urls import reverse return HttpResponseRedirect(reverse('something_name')) يبحث هذا في جميع عناوين URL المحددة في مشروعك لعنوان URL المحدد بالاسم something_name ويعيد عنوان URL الفعلي /something/. هذا يعني أنك تشير إلى عنوان URL فقط من خلال اسمه - إذا كنت تريد تغيير عنوان URL نفسه أو ملف العرض الذي يشير إليه، فيمكنك القيام بذلك عن طريق التعديل في مكان واحد فقط وهو الملف urls.py. كما يمكنك تمرير معاملات إلى رابط URL من خلال الدالة reverse كالتالي: # URL: /cities/cairo/ return HttpResponseRedirect(reverse('cities', args=('cairo',)))
    1 نقطة
  29. لدي مشكلة في تكوين webpack الخاص بي. بعد تنفيذ html-webpack-plugin ، حصلت على خطأ في index.html الذي تم إنشاؤه. Error: Child compilation failed: Conflict: Multiple assets emit to the same filename index.html: Error: Conflict: Multiple assets emit to the same filename index.html هذه هي الاعدادات الخاصة بي var webpack = require('webpack'), path = require('path'); var CopyWebpackPlugin = require('copy-webpack-plugin'), ExtractTextWebpackPlugin = require('extract-text-webpack-plugin'), HtmlWebpackPlugin = require('html-webpack-plugin'), const sourcePath = path.resolve(__dirname, './src'); const staticPath = path.resolve(__dirname, './static'); module.exports = function (env) { const nodeEnv = env && env.prod ? 'production' : 'development'; const isProd = nodeEnv === 'production'; const postcssLoader = { loader: 'postcss-loader', options: { plugins: function () { return [ require('autoprefixer') ]; } } } const plugins = [ new webpack.optimize.CommonsChunkPlugin({ name: 'vendor', minChunks: Infinity, filename: 'vendor.bundle.js' }), new webpack.EnvironmentPlugin({ NODE_ENV: nodeEnv, }), new HtmlWebpackPlugin({ template: 'index.html', minify: { removeComments: true, collapseWhitespace: true, removeAttributeQuotes: true }, chunksSortMode: 'dependency' }) ]; if(isProd) { plugins.push( new webpack.LoaderOptionsPlugin({ minimize: true, debug: false }), new webpack.optimize.UglifyJsPlugin({ compress: { warnings: false, screw_ie8: true, conditionals: true, unused: true, comparisons: true, sequences: true, dead_code: true, evaluate: true, if_return: true, join_vars: true, }, output: { comments: false, }, }) ); } else { plugins.push( new webpack.HotModuleReplacementPlugin() ); } return { devtool: isProd? 'source-map' : 'eval', context: sourcePath, entry: { app: './app/entry.ts', vendor: './app/vendor.ts' }, output: { path: staticPath, filename: '[name].bundle.js', }, module: { rules: [ { test: /\.html$/, exclude: /node_modules/, use: { loader: 'file-loader', query: { name: '[name].[ext]' }, }, }, { test: /\.css$/, exclude: /node_modules/, use: [ 'style-loader', 'css-loader', 'postcss-loader' ] }, { test: /\.scss$/, exclude: /node_modules/, use: [ 'style-loader', 'css-loader', 'postcss-loader', 'sass-loader' ] }, { test: /\.ts$/, exclude: /node_modules/, use: [ 'ts-loader' ], }, ], }, resolve: { alias: { Public: path.resolve(__dirname,'src/public'), Style: path.resolve(__dirname,'src/styles') }, extensions: ['.ts','.js', '.html'], modules: [ path.resolve(__dirname, 'node_modules'), sourcePath ] }, plugins, performance: isProd && { maxAssetSize: 100, maxEntrypointSize: 300, hints: 'warning' }, stats: { colors: { green: '\u001b[32m' } }, devServer: { contentBase: './src', historyApiFallback: true, port: 3000, compress: isProd, inline: !isProd, hot: !isProd, stats: { assets: true, children: false, chunks: false, hash: false, modules: false, publicPath: false, timings: true, version: false, warnings: true, color: { green: '\u001b[32m' } }, } }; };
    1 نقطة
  30. يمكن معرفة نظام التشغيل الحالي عن طريق اختبار قيمة المتحول process.platform فهو يأخذ القيم التالية win32: في حال كان النظام Windows darwin: في حال كان النظام MacOS linux: في حال كان النظام Linux مثال لتنفيذ عملية ما فقط على نظام التشغيل ويندوز if(process.platform === "win32"){ // أوامر تنفذ فقط على نظام ويندوز }
    1 نقطة
  31. يمكنك تحويل إطار البيانات بالكامل إلى سلسلة ثم عرضه من خلال الدالة display: import numpy as np from sklearn.datasets import load_iris import pandas as pd data = load_iris() df = pd.DataFrame(data.data, columns = data.feature_names) display(df.to_string()) أو من خلال pd.option_context: import numpy as np from sklearn.datasets import load_iris import pandas as pd data = load_iris() df = pd.DataFrame(data.data, columns = data.feature_names) with pd.option_context('display.max_rows', None, 'display.max_columns', None, 'display.precision', 3, ): print(df) كذلك يمكنك استخدام pd.set_option، ثم عرضها من خلال display: import numpy as np from sklearn.datasets import load_iris import pandas as pd data = load_iris() df = pd.DataFrame(data.data, columns = data.feature_names) # لعرض أكبر عدد من الأسطر و الأعمدة نقوم بعمليات الضبط التالية pd.set_option('display.max_rows', None) pd.set_option('display.max_columns', None) pd.set_option('display.width', None) pd.set_option('display.max_colwidth', -1) # قبل display(df) print('**RESET_OPTIONS**') # تطبيق المحددات السابقة pd.reset_option('all') # الآن سيتم عرضها بالكامل display(df)
    1 نقطة
  32. يجب أن تحتوي قائمة ALLOWED_HOSTS على أسم مضيف بشكل صحيح، وليس عناوين url. اترك المنفذ port (8000) والبروتوكول (http). إذا كنت تستخدم 127.0.0.1 ، فقم بإضافة مضيف محلي إلى القائمة كالتالي: ALLOWED_HOSTS = ['127.0.0.1', 'localhost'] يمكنك أيضًا استخدام * لمطابقة أي مضيف: ALLOWED_HOSTS = ['*'] لكن لا تقم بإستخدام هذه الطريقة في مرحلة الإنتتاج production أبدًا لأنها تقوم بتعديل هذه حماية من الأساس، حيث سيتم مطابقة أي مضيف بدون التحقق منه. يرجع سبب الخطأ 400 الذي تحصل عليه إلى ظهور استثناء SuspiciousOperation عندما لا يتطابق اسم المضيف (127.0.0.1) مع أي قيمة من القيم في تلك القائمة.
    1 نقطة
  33. إليك نسخة مبسطة من إجابة سامح باستخدام نموذج فارغ كقالب: <h3>My Services</h3> {{ serviceFormset.management_form }} <div id="form_set"> {% for form in serviceFormset.forms %} <table class='no_error'> {{ form.as_table }} </table> {% endfor %} </div> <input type="button" value="Add More" id="add_more"> <div id="empty_form" style="display:none"> <table class='no_error'> {{ serviceFormset.empty_form.as_table }} </table> </div> <script> $('#add_more').click(function() { var form_idx = $('#id_form-TOTAL_FORMS').val(); $('#form_set').append($('#empty_form').html().replace(/__prefix__/g, form_idx)); $('#id_form-TOTAL_FORMS').val(parseInt(form_idx) + 1); }); </script>
    1 نقطة
  34. يمكنك أن تقوم بهذا الأمر بطريقة سهلة من خلال jQuery ، كالتالي: {{ serviceFormset.creating_form }} <div class="form_set"> {% for f in serviceFormset.forms %} <table class='no_error form'> {{ f.as_table }} </table> {% endfor %} </div> <input type="button" value="Add New Form" id="add"> <script> $('#add').click(function() { addMoreForms('table.form:last', 'service'); }); </script> الكود السابق (في القالب template) يقوم بعرض نموذج جديد عند الضغط على زر Add New Form. ودالة addMoreForms، ستكون كالتالي: function addMoreForms(selector, type) { let newForm = $(selector).clone(true); let totalValue = $('#id_' + type + '-total_forms').val(); newForm.find(':input').each(function() { let name = $(this).attr('name').replace('-' + (totalValue-1) + '-', '-' + totalValue + '-'); let id_ = 'id_' + name; $(this).attr({'name': name, 'id': id_}).val('').removeAttr('checked'); }); newForm.find('label').each(function() { let newFor = $(this).attr('for').replace('-' + (totalValue - 1) + '-', '-' + totalValue + '-'); $(this).attr('for', newFor); }); total++; $('#id_' + type + '-total_forms').val(totalValue); $(selector).after(newForm); } هذه الدالة مفيدة بشكل كبير لأن طريقة إعدادها تسمح لك باستخدامها في جميع أنحاء التطبيق عندما ترغب في عرض المزيد من النماذج في formset.
    1 نقطة
  35. اذا كنت تريد فقط ملئ الفراغ الأبيض يمكنك تحديد الحاوية التي تحوي الصورة والنص وتعطيها ارتفاع 100% div { height:100% } هكذا سيمتلأ الفراغ ولكن تبقى الصور تأخذ أحجامها العادية أو يمكنك استخدام الحل المرفق في التعليق السابق للتحكم في حجم الصور وهكذا ستضمن أن كل احجام الصور نفسها ولن تطرأ المشكلة لكن قد تصبح بعض الصور مشوهة وهذا يعتمد على أحجام الصور الأصلية المستخدمة
    1 نقطة
  36. موضوع تحديث أنظمة الهاتف ليس بالأمر السهل مثل الحاسوب، لأن أجزاء الهاتف متغيرة جداً ونوعاً ما ترتبط بالشركة المصنعة التي تقدم السوقات Drivers للمكونات الصلبة Hardware فيه والتي تكون متوافقة فيما بينها. أي الحصول على نظام 64 مقدم للهاتف من نفس الشركة المصنعة احتمال غيرموجود. إن قمت بجلب نظام تشغيل أندرويد 64 بت وقمت بتثبيته على الأغلب سيعمل ولكن تحتاج لمتابعة شروحات دقيقة لتتأكد من أنه متوافق مع قطع الهاتف. موضوع التوافق الذي أتحدث عنه لايقتصر علاى المعالج، بل شبكات الاتصالات والكاميرة، إن أردت التجريب حاول تثبيت أنظمة تشغيل custom ROMs
    1 نقطة
  37. تماماً كما أوضح سامح. وفي Flask أو أي مكان تستخدم فيه psycopg2 تحتاج فقط إلى التعليمات التالية وسينجح الأمر غالباً: curs = conn.cursor() curs.execute("ROLLBACK") conn.commit()
    1 نقطة
  38. هذا الخطأ سحدث في قواعد بيانات postgres وينتج عن استعلام خاطيء ومحاولة تشغيل استعلام آخر دون التراجع عن المعاملة أولاً rolling back. (قد تفكر في الأمر على أنه ميزة أمان ، لمنعك من إتلاف بياناتك) لإصلاح ذلك، سترغب في معرفة مكان تنفيذ هذا الاستعلام الخاطيء في الكود. قد يكون من المفيد استخدام خياري log_statement و log_min_error_statement في خادم postgresql، لمعرفة الإستعلامات التي يتم تنفيذها. بعد إصلاح الكود ستحتاج إلى عمل rolling back من خلال الكود التالي: from django.db import transaction, DatabaseError try: a.save() except DatabaseError: transaction.rollback() الكود السابق مساوي لجملة ROLLBACK في SQL، يمكنك معرفة المزيد عن هذا الأمر من خلال موسوعة حسوب من هنا (الأمر ROLLBACK) أيضًا قد يكون سبب الخطأ هو عدم مزامنة قاعدة البيانات، ولحل هذا الأمر يمكنك أن تستخدم الأمر syncdb (والذي يأتي مضمنًا في Django)، كالتالي: python3 manage.py syncdb بعد ذلك يمكنك عمل تهجير للبيانات مرة أخرى للتأكد من إصلاح الخطأ، كالتالي: python3 manage.py migrate
    1 نقطة
  39. في الأساس الخاصية flex-basis تعني العرض الذي سيأخذه كل عنصر (عرض في حالة flex row و ارتفاع في حالة flex column) ثم، المساحة الفارغة الباقية في الحاوي يتم توزيعها اعتمادا على الخاصية flex-grow حتى يتم تحديد العرض النهائي للعناصر، وبالتالي في حالة عدم وجود عناصر مجاورة (أو كان عرضها يساوي 0) سيتم إستخدام الخاصية flex-basis على أنها قيمة العرض الخاص بالعنصر. فعلى سبيل المثال، في الفيديو الذي قمت بإرفاقه، ستجد أن الأيقونة لها الخاصية flex-basis: 60px أي أن عرضها سيكون 60px ولكن لأن صندوق النص .text يحتوي على نص كبير (محتوى كثير) فسيقوم بأخذ كل المساحة المطلوبة حتى على حساب عرض الأيقونة (في حالة لم يتم وضع الخاصية flex: 1)، لكن لكي لا يحدث هذا الأمر ييجب أن يتم إضافة الخاصية flex: 1 إلى صندوق النص .text لكي يأخذ المساحة المتبقية فقط. وقد تم شرح هذا الأمر في المقالة التي أرفقتها وتحديدًا في قسم (جعل العناصر مرنة). وهنا مثال آخر: <style> .parent { display: flex; width: 471px; background-color: #eee; color: white; font-size: 1.5em; } .red{ background-color: red; height: 100px; flex-basis: 100px; } .blue{ background-color: blue; height: 100px; flex: 1; /* لاحظ وجود الخاصية هنا */ } </style> <div class="parent"> <div class="red">icon</div> <div class="blue">text <br> Lorem ipsum dolor sit amet consectetur, adipisicing elit. Voluptas eaque blanditiis </div> </div> وسوف تكون نتيجة الكود السابق، كالتالي: لاحظ كيف يختفي المحتوى في الصندوق الأزرق، ذلك لأننا قمنا بإضافة الخاصية flex:1 إليه أي أنه سيأخذ المساحة المتبقية فقط وسيحترم قيمة flex-basis الموجودة في الصندوق الأحمر. بينما إن قمنا بإزالة الخاصية flex:1 ، كالتالي: .blue{ background-color: blue; height: 100px; /* flex: 1; */ } فستكون النتيجة كالتالي: الصندوق الأزرق أخذ كل المساحة المطلوبة ليظهر المحتوى بالكامل، بغض النظر عن قيمة الخاصية flex-basis في الصندوق الأحمر.
    1 نقطة
  40. إليك ماتحتاجه، أضفت طريقتين للقيام بالمهمة من دون استخدام توابع باندا (توابع باندا دوماً أقل كفاءة من ناحية الأداء): df = pd.DataFrame({'col':list('abccbac')}) df """ col 0 a 1 b 2 c 3 c 4 b 5 a 6 c """ #pivot_table ألطريقة الأولى هي استخدام الدالة df.pivot_table(index = ['col'], aggfunc ='size') """ col a 2 b 2 c 3 dtype: int64 """ #Counter يمكنك أيضاً استخدام from collections import Counter Counter(list(df['col'])) # Counter({'a': 2, 'b': 2, 'c': 3}) #لمعرفة عدد مرات تكرار عنصر معين operator يمكنك أيضاً استخدام import operator operator.countOf(list(df['col']), "a") # 2
    1 نقطة
  41. للتحقق من المستخدمين المصادق عليهم ضمن القالب الخاص بك، فقم بما يلي: {% if user.is_authenticated %} <p>user</p> {% else %} <!-- شيئ ما تريد فعله مع مستخدم غير مصدق عليه --> {% endif %} # أو #else بدون {% if user.is_authenticated %} <p>{{ user }}</p> {% endif %} #decorator في وظائف التحكم الخاصة بك أضف from django.contrib.auth.decorators import login_required @login_required def privateFunction(request):
    1 نقطة
  42. يمكنك استخدام الدالة index لخلق عمود خاص بالفهرس index كالتالي: df['index1'] = df.index أو استخدام الدالة .reset_index كذلك: df.reset_index(level=0, inplace=True) أو استخدامها بالطريقة التالية وفي كل الطرق تكون النتيجة كالتالي: df = df.rename_axis('index').reset_index() print(df) index col1 col2 0 0 384444683 593 1 1 384444684 594 2 2 384444686 596
    1 نقطة
  43. كما وضح أحمد أنه المشكلة في عدم وجود ال header وكما في التوثيق الخاص بpandas لذلك لحل المشكلة سوف يكون الكود كالتالي df = pandas.read_csv(filepath, sep='delimiter', header=None) أو يمكنك حل هذه المشكلة من خلال تعريف أسماء الأعمدة في الخاصية names كما في المثال التالي col_names = ["col1", "col2", "col3", ...] df = pd.read_csv(filename, names=col_names) وليس شرطاً أن تكون بنفس أسماء الأعمدة بل يجب أن تكون placeholder فقط بعدد الأعمدة لذلك يمكنك استخدام الحل التالي df = pd.read_csv(filename, names = list(range(0,N))) حيث يعبر N عن عدد الأعمدة
    1 نقطة
  44. قد تكون المشكلة إما بالصف الأول من البيانات كما أشار أحمد، أو بالمحددات delimiters. لذا لحل المشكلة قم باستخدام الوسيط sep و/أو الوسيط header مع الدالة read_csv. بالنسبة ل sep فالتوثيق يقول"إذا كان sep = None [ أي غير محدد] ، فسيحاول باندا تحديده تلقائياً." أي عدم تحديده لن يسبب مشكلة (ومع ذلك في الممارسة العملية تنتج أخطاء مع البعض لذا يفضل تحديده إذا حدث خطأ). أما بالنسبة لل header تقول المستندات في باندا ""إذا كان الملف لا يحتوي على صف header، فيجب عليك تمرير header = None" بشكل صريح. ,في هذه الحالة، يقوم باندا تلقائياً بإنشاء فهارس لكل حقل {0،1،2، ...}." مثلاً: df = pd.read_csv(path, sep='delimiter', header=None) # sep :delimiter تقوم من خلالها بتعريف المحدد # header=None: لإخبار باندا بأن بياناتك لا تحتوي على صف لعناوين الرؤوس / الأعمدة كما يمكنك استخدام الحلول التي أشار لها أحمد بالنسبة لل header
    1 نقطة
  45. إضافة لإجابة سامح الرئعة يمكنك إنشاء دالة للقيام بهذه المهمة: def chk(model, **kwargs): try: return model.objects.get(**kwargs) except model.DoesNotExist: return None # واستخدمها بالشكل التالي get = chk(Content,role="writer") #في حالة عدم التطابق None القيمة get ستعيد #Content وإلا ستعيد ال # MultipleObjectsReturned سيعيد الاستثناء #role="writer" إذا تم إرجاع أكثر من إدخال واحد ل # لذا يجب التقاط هذا الاستثناء لكي لايتسبب بمشاكل def chk(model, **kwargs): try: return model.objects.get(**kwargs) except model.MultipleObjectsReturned as e: print(e) except model.DoesNotExist: return None كذلك هناك الدالة get_object_or_None من الموديول annoying.functions : from annoying.functions import get_object_or_None as get #.... go = get(Content, role="writer")
    1 نقطة
  46. تستخدم الخاصية flex لكي تُحدِّد كيف سيتمدد أو يتقلص أحد العناصر لكي يملأ المساحة المتوافرة في حاوية flex، وهذه الخاصية تعتبر إختصارًا للخواص: flex-grow: بقيمة 0 flex-shrink: بقيمة 1 flex-basis: بقيمة auto تقبل الخاصية flex قيمةً واحدةً أو قيمتين أو ثلاث قيم. عندما تقوم بتحديد الخاصية flex بقيمة واحدة، يكون وكأنك قمت بتحديد الخصائص الثلاث بالقيم التالية: flex: 1; /* الخاصية السابقة إختصار لكل التالي*/ flex-grow: 1; flex-shrink: 1; flex-basis: 0%; بينما الخاصية flex-basis تقوم بتحديد حجم صندوق محتوى content box الخاص بالعنصر الرئيسي Main Size إلا إذا تم تعديله من خلال الخاصية box-sizing، وبالتالي يظهر حجم الأيقونة بـ 60px. مما سبق، عندما تقوم بتحديد flex: 1، يكون وكأنك قمت بتحديد الخاصة flex-grow: بقيمة 1، وبالتالي يأخذ حجم النص .text 100% من العرض ناقص عرض الأيقونة (60px)، وبدون تحديد الخاصية flex على العنصر .text لن تعمل الخاصية flex-basis على الأيقونة.
    1 نقطة
  47. حسناً إضافة للطرق السابقة إليك طرق إضافية (أنصح بشدة باستخدام vectorize التي ذكرتها @Reem Elmahdiإذا كنت مهتماً بالسرعة): import pandas as pd # إنشاء داتا لنعمل عليها df =pd.DataFrame( {'Name':['Jai', 'Princi', 'Gaurav', 'Anuj'], 'Age':[27, 24, 22, 32], 'Address':['Delhi', 'Kanpur', 'Allahabad', 'Kannauj'], 'Qualification':['Msc', 'MA', 'MCA', 'Phd']}) df """ Name Age Address Qualification 0 Jai 27 Delhi Msc 1 Princi 24 Kanpur MA 2 Gaurav 22 Allahabad MCA 3 Anuj 32 Kannauj Phd """ # str.find أول طريقة لنستخدم التابع # a مثلاً نريد البحث عن الأماكن التي توجد بها المحرف # يعيد هذا التابع الفهرس الأول الذي تواجدت فيه بداية السلسلة الجزئية التي تبحث عنها sub ='a' df["Indexes"]= df["Name"].str.find(sub) df """ Name Age Address Qualification Indexes 0 Jai 27 Delhi Msc 1 1 Princi 24 Kanpur MA -1 2 Gaurav 22 Allahabad MCA 1 3 Anuj 32 Kannauj Phd -1 """ # findall الطريقة الثانية هي استخدام #re وذلك من خلال مكتبة # هذه الطريقة تمكنك من البحث يطريقة فعالة وسهلة حيث أنك فقط تحدد لها ماتريد البحث عنه import re #ci أو ai هنا نحدد أننا نريد جميع الكلمات التي تحوي df['Name'].str.findall('ci|ai', flags=re.IGNORECASE) # هنا قمت بتجاهل حالة الأحرف ويمكنك أن لاتتجاهلها حسبما تريد # إليك التابع التالي الذي قمت بتعريفه لك بحيث يسهل عليك عملية البحث عن أي سلسلة جزئية وهو حل فعال جداً من ناحية الأداء #regex وذلك لأنني اعتمدت فيهاستخدام مكتبة التعابير المنتظمة def stringSearchColumn_DataFrame(df, colName, regex): newdf = pd.DataFrame() for idx, record in df[colName].iteritems(): if re.search(regex, record): newdf = pd.concat([df[df[colName] == record], newdf], ignore_index=True) return newdf stringSearchColumn_DataFrame(df,"Name","ai") """ Name Age Address Qualification Indexes 0 Jai 27 Delhi Msc 1 """ stringSearchColumn_DataFrame(df,"Name","ai|ci") """ Name Age Address Qualification 0 Princi 24 Kanpur MA 1 Jai 27 Delhi Msc """ # هذا مريح أكثر أليس كذلك؟؟
    1 نقطة
  48. يمكنك أن تستعمل علامة pipe | مع التابع contains كالتالي: >>> searchfor = ['og', 'at'] >>> df[df.str.contains('|'.join(searchfor))] 0 cat 1 hat 2 bat 3 dog dtype: object أو بدون التابع join كالتالي: >>> searchfor = ['og', 'at'] >>> df[df.str.contains('og|at')] 0 cat 1 hat 2 bat 3 dog dtype: object لكن لاحظ أن النص قد يحتوي على رموز يتم إعتبارها من regex مثل $ و ^ .. إلخ، وبالتالي سوف تؤثر على طريقة البحث، ولحل هذه المشكلة يجب إضافة \\ قبل هذه الرموز، ويمكنك أن تستخدم التابع escape من مكتبة re للقيام بهذه المهمة، كالتالي: >>> import re >>> matches = ['$cat', 'dog^ant'] >>> new_matches = [re.escape(m) for m in matches] >>> new_matches ['\\$cat', 'dog\\^ant'] >>> df = pd.Series(['cat','hat','bat','dog','ant', 'my $cat', 'our dog^ant']) >>> df[df.str.contains('|'.join(new_matches))] 5 my $cat 6 our dog^ant dtype: object
    1 نقطة
  49. يمكنك البحث عن طريق عمل list بها المقاطع التى تريد البحث عنها ثم استخدام الدالة searchfor كالتالي: >>> searchfor = ['og', 'at'] >>> s[s.str.contains('|'.join(searchfor))] 0 cat 1 hat 2 bat 3 dog كذلك يمكنك استخدام str.contains ووضع المقاطع التي نريد بها مباشرة كالتالي: >>> df = pd.DataFrame(s) >>> df[s.str.contains('og|at')] 0 cat 1 hat 2 bat 3 dog
    1 نقطة
×
×
  • أضف...