لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 01/03/22 في كل الموقع
-
ضمن إعدادات المشروع يتم استخدام forge كمستخدم user ضمن قاعدة البيانات لتنفيذ الاستعلامات (مثل بناء قاعدة البيانات أو تعديلها أو عمليات التهجير) ربما هذا المستخدم غير موجود لديك في قاعدة البيانات المحلية، ولكي تستخدم مستخدم له صلاحيات، يمكن استعمال المستخدم الجذر root لعمل اللازم في مرحلة التطوير لديك. وهذا يتطلب تعديل إعدادات الاتصال بقاعدة البيانات في المشروع (اسم المستخدم و كلمة السر الخاصة به بقاعدة البيانات) أو توجه لمدير قاعدة البيانات لديك وقم بإنشاء مستخدم جديد لقاعدة البيانات الخاصة بالمشروع باسم forge واعطه صلاحيات كاملة لتستطيع عمل استعلامات من خلاله. قد تجد اسم المستخدم في ملفات المشروع لديك في الملف config/database.php 'mysql' => [ 'driver' => 'mysql', 'host' => env('DB_HOST', 'localhost'), 'database' => env('DB_DATABASE', 'forge'), // اسم قاعدة البيانات 'username' => env('DB_USERNAME', 'forge'), // هنا ضع root 'password' => env('DB_PASSWORD', ''), // اتركها فارغة 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'strict' => false, ], ثم نفذ الأمر php artisan config:cache3 نقاط
-
2 نقاط
-
يجب أن تحاول بنفسك ثم نستطيع مساعدتك في حل الأخطاء التي تعترضك2 نقاط
-
قد يكون سبب هذه المشكلة هو المتصفح نفسه وليس فلاسك Flask وللتأكد من هذا الأمر حاول أن تقوم بتجربة المشروع بإستخدام متصفح مختلف فإذا تم تحميل الملفات بشكل صحيح وتحتوي على آخر التحديثات، فيجب أن تقوم بحذف الملفات المؤقتة من متصفح الويب الخاص بك من خلال أحد هذه الطرق (تختلف حسب نظام التشغيل لديك): ويندوز: Ctrl+F5 ماك: Cmd+Shift+R أو Cmd+Opt+R لينكس: Ctrl+Shift+R أيضًا تستطيع تغير اسم ملف JavaScript وسيقوم المتصفح بإعادة تحميله مرة أخرى بأحدث التعديلات عليه. يمكنك أيضًا أن تضيف متغير إلى رابط الملف كمعامل URL بالشكل التالي: script.js?some_variable=file_timestamp حيث تقوم بتغير قيمة المعامل file_timestamp بإستخدام فلاسك Flask في القالب بأي رقم عشوائي Random وحينها سيقوم المتصفح بإعادة تحميل الملف كل مرة، على النحو التالي: def last_updated_timestamp(folder): return str(max(os.path.getmtime(os.path.join(root_path, f)) for root_path, dirs, files in os.walk(folder) for f in files)) @app.route('/') def index(): return render_template('index.html', timestamp=last_updated_timestamp('./static')) # في القالب <script type="text/javascript" src="/static/script.js?u={{ timestamp }}"></script> وستكون النتيحة بالشكل التالي: <script type="text/javascript" src="/static/script.js?u=1641149029.12"></script> حل آخر وهو إخبار المتصفح بألا يقوم بحفظ الملفات لأكثر من فترة معينة من خلال تحديد الخاصية cache_control.max_age بعدد ثواني معينة بالشكل التالي: @app.route('/api/v1/users/') def get_users(): data = {"name": "sameh"} response = jsonify(data) response.cache_control.max_age = 60 * 60 * 24 # يوم واحد بالثواني return response بهذا الشكل لن يقوم المتصفح بحفظ الملفات الثابتة (ملفات CSS/JS/JSON .. إلخ) لفترة أطول من يوم واحد.2 نقاط
-
بعد تنفيذ الامر composer require laravel/ui:^1.0 --dev نجح الامر وظهر التالي ./composer.json has been updated Running composer update laravel/ui Loading composer repositories with package information Updating dependencies Nothing to modify in lock file Writing lock file Installing dependencies from lock file (including require-dev) Nothing to install, update or remove Package swiftmailer/swiftmailer is abandoned, you should avoid using it. Use symfony/mailer instead. Package phpunit/php-token-stream is abandoned, you should avoid using it. No replacement was suggested. Generating optimized autoload files Class Razorpay\Tests\fundTest located in ./vendor/razorpay/razorpay/tests/FundTest.php does not comply with psr-4 autoloading standard. Skipping. Class Razorpay\Tests\registerNachTest located in ./vendor/razorpay/razorpay/tests/registerNachtest.php does not comply with psr-4 autoloading standard. Skipping. > Illuminate\Foundation\ComposerScripts::postAutoloadDump > @php artisan package:discover --ansi Discovered Package: barryvdh/laravel-debugbar Discovered Package: barryvdh/laravel-ide-helper Discovered Package: facade/ignition Discovered Package: fideloper/proxy Discovered Package: intervention/image Discovered Package: laravel/dusk Discovered Package: laravel/tinker Discovered Package: laravel/ui Discovered Package: maatwebsite/excel Discovered Package: nesbot/carbon Discovered Package: nunomaduro/collision Discovered Package: simplesoftwareio/simple-qrcode Package manifest generated successfully. 85 packages you are using are looking for funding. Use the `composer fund` command to find out more! ولكن عند محاولة تنفيذ الامر php artisan ui vue لتثبيت اطار vue اواجه الخلل التالي ErrorException : copy(/var/www/html/POS_Ibra/resources/sass/_variables.scss): failed to open stream: No such file or directory at /var/www/html/POS_Ibra/vendor/laravel/ui/src/Presets/Bootstrap.php:42 38| * @return void 39| */ 40| protected static function updateSass() 41| { > 42| copy(__DIR__.'/bootstrap-stubs/_variables.scss', resource_path('sass/_variables.scss')); 43| copy(__DIR__.'/bootstrap-stubs/app.scss', resource_path('sass/app.scss')); 44| } 45| 46| /** Exception trace: 1 copy() /var/www/html/POS_Ibra/vendor/laravel/ui/src/Presets/Bootstrap.php:42 2 Laravel\Ui\Presets\Bootstrap::updateSass() /var/www/html/POS_Ibra/vendor/laravel/ui/src/Presets/Bootstrap.php:15 Please use the argument -v to see more details. قمت بانشاء الملف sass بشكل يدوي واضفت الملفات المطلوبة ولكن لا زلت اواجه نفس الخلل1 نقطة
-
أنا أستخدم فلاسك flask لموقع بسيط. والآن أرغب في إرسال صورة (يتم إنشاؤها ديناميكيًا بواسطة مكتبة PIL) إلى العميل، لكن المشكلة أني أريد أن يتم إرسال الصورة بدون حفظها على القرص لكي تكون العملية أسرع خصوصًا أني لا أحتاج الصورة على الخادم بعد إرسالها إلى العميل. كيف أقوم بهذا الأمر؟ وهل يمكن أن أختار صيغة الصورة وجودتها أيضًا قبل إرسالها؟1 نقطة
-
لماذا لا يتم استخدام الindex في الlike في قواعد البيانات1 نقطة
-
1 نقطة
-
1 نقطة
-
أحاول أن أقوم بعمل صنف Class-based view ولدي نموذج باسم Product بالشكل التالي: class Product(models.Model): number = models.CharField(max_length=50) provider = models.ForeignKey(Provider, on_delete=models.CASCADE) description = models.CharField(max_length=2000, default='SOME CONTENT HERE') def __str__(self): return "Product #" + self.number + " of " + self.provider.number لذلك قمت بإنشاء الصنف التالي: class Product(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) وهذا المسار path الخاص به: path('provider/resource/<int:resource_id>', Product.as_view(), name='resource'), لكن لسبب ما أحصل على الخطأ التالي: Exception Type: TypeError at /provider/resource/33 Exception Value: Product.get() got an unexpected keyword argument 'pk' ما سبب هذا الخطأ وكيف أقوم بحله؟1 نقطة
-
لدي نموذج User وأريد أن أرتب المستخدمين بناءً على العمود likes و created_at بحيث يتم تنفيذ تعليمة SQL التالية: SELECT * FROM users ORDER BY likes DESC, created_at DESC LIMIT 10 حاولت أن أقوم بتنفيذ السطر التالي: User.query.order_by(User.likes.desc()).limit(10).all() ولكن بهذه الطريقة لا يمكن ترتيب المستخدمين بحسب تاريخ الإنشاء أيضًا. كيف يمكنني أن أستخدم أكثر من عمود في التابع order_by في الإستعلام السابق؟1 نقطة
-
إن الدالة order_by تقبل تمرير أكثر من وسيط بالترتيب الذي نريد عمل ترتيب النتائج عليه، فيكون أول وسيط هو عدد الإعجابات و الثاني هو تاريخ تاريخ الإنشاء ليصبح الاستعلام User.query.order_by( User.likes.desc(), User.date_created.desc() ).limit(10).all() كما يمكن استعمال الدوال _and و _or مثلا: # تضمين from sqlalchemy import and_, or_ #الاستعلام User.query.order_by( and_(User.likes.desc(), User.date_created.desc()) ^^^ ^^^^^ ).all() وحل آخر هو تمرير عبارة الترتريب كنص للاستعلام عن طريق دالة text كالتالي: from sqlalchemy.sql import text User.query.order_by( text("likes desc, date_created desc") ).limit(10).all()1 نقطة
-
قم بإنشاء هذان الملفان في المجلدات التالية resources/sass/_variables.scss resources/js/bootstrap.js ثم قم بتنفيذ npm install وسوف تحل المشكلة1 نقطة
-
مرحبا اخي شاكر لك ردك عزيزي واعتذر على تأخر الرد الان فقط تم حل المشكلة الحل كالتالي للفائدة : نعمل تصدير للمشروع في اول خطوة كـ Folder طبعا بيكون يحتوي على قاعدة البيانات وكل الملفات المطلوبه نذهب الى سيرفر IIS نعمل اضافة موقع جديد ونمنحه اسم ونختار موقع المشروع الذي تم تصديره من خلال الفيجوال بيسك بعدها لحل المشكله التي تظهر في الاعلى كالتالي: 1.Application Pools 2. نقوم باختيار اسم المشروع الذي تم انشاءه 3. من القائمة الجانبية نختار Advanced Setting 4. Process Model 5. Identity 6. نقوم بتغير قيمة الحل الى Local System اعمل تحديث الان لصفحة النت من خلال المتصفح ورح يعمل بشكل طبيعي1 نقطة
-
شكرا لك لدي فقط سؤال اخر هل بامكاني اضافة select control ايضا للمودال ومن ثم يتم ادخال القيمه المختارة في عنصر داخل html1 نقطة
-
هذه المشكلة بسبب إعداد DNS على الأغلب حيث لم يتم تحديثها، حاول إعادة تشغيل مخدم DNS لديك DNS service أو أن DNS Domain غير محدد بشكل صحيح.1 نقطة
-
1 نقطة
-
هل يمكنك إضافة جزء الكود مكات تعريف myString و كيف تقوم باستدعاء getStringFromJson حاول myString = new String (stringValue); ربما سبب المشكلة هو عمل تخزين مؤقت caching يحفظ القيمة السابقة لناتج الاتصال ولا يعمل تحديث. بعد استلام الطلبية ضع في الدالة في أول سطر منها التعليمة التالية requestQueue.getCache().clear(); لنحذف ذاكرة التخزين المؤقت من Volley @Med Foud1 نقطة
-
صراحة لم أجد حلاً لهذا الوقت ، ولكن أعمل على حل المشكلة و سأضع إجابة في أقرب وقت ممكن1 نقطة
-
لا هذا الموقع مجرد مثال فقط نعم لدي صلاحية لتعديل النص في الموقع المشكل ليس في الموقع. انما المشكل في الكود جافا. لأنما عندما Clear All Data في الهاتف ثم اعيد تشغيله يأخذ القيمة الجديدة وتبقى هذه القيمة ثابتة مرة اخرى حتى وان غيرتها في الموقع الى ان اقوم من جديد ب Clear All Data1 نقطة
-
هل تم حل مشكلتك؟ ارجو إرفاق الاكواد المتعلقة بالمشكلة فقط وليس الملفات.1 نقطة
-
السلام عليكم اخي بلال @بلال زيادة اعتذر على الازعاج و انا مخجول منك بسبب كثرة اسئلتي و لكنني اتعامل مع زبون لاول مرة بخصوص تعريب ووردبرس لقد قمت باصلاح هذا السطر و تم ترجمة ال footer لكن لاحظت مشكلة داخل ملف inc/customizer/zon-defualt-values.php يوجد داخل هذا الملف 4 مصطلحات لم تتم ترجمتها !! و هي live update breaking new view more Search … قمت بالتأكد ان كان هنالك فراغات داخل الكلمات لم اجد ما هي المشكلة ؟؟ و جزاك الله خيرا zon.zip1 نقطة
-
حسب القالب الذي تم اختياره يتوفر تخصيصات لتصميم صفحاتك وتعديل ألوانها وترتيبها، بالنسبة للمحتوى من كلمات وصور فالقالب يوفر المظهر فقط، المحتوى يجب عليكِ إضافته بنفسك بحسب الحاجة، من صور Media ومنشورات Posts، وإضافة الأدوات Widgets وإعدادها بما يناسب المطلوب يمكنك التعرف أكثر بالاطلاع على المقالات التالية فهي تقدم شرحًا أوليًا وعامًا عن كيفية استخدام ووردبرس وإضافة المحتوى1 نقطة
-
1 نقطة
-
حاول تنفيذ الأمر التالي وجرب مجددًا composer config --global process-timeout 50001 نقطة
-
ضمن إعدادات المشروع لديك في composer.json يمكنك إضافة الإعداد التالي لإلغاء حد توقيت الانتظار وحاول تنفيذ composer install مرة أخرى { ... "config": { "process-timeout":0 } } قد تكون المشكلة من سرعة الاتصال على جهازك أو من مستودع المكتبة نفسه، حاول أيضا الاتصال ب VPN وإعادة المحاولة قد تتجاوز المشكلة1 نقطة
-
ازاي اعمل join one to many فالsqlalchemy باستخدام الflask_restful في الapi1 نقطة
-
نفترض أن لدينا جدولين user posts العلاقة بينهما واحد للuser وكثير للposts, نقوم بوضع مفتاح أجنبي(foreign key) عند جدول الposts يُشير إلى المفتاح الأساسي primary key لجدول الuser كما بالشكل التالي user_id = Column(Integer, ForeignKey('user.id')) ومن ثم نذهب إلى جدول user ونقوم بتعريف العلاقة بينهما relationship كما بالشكل التالي posts = relationship("posts") وعند إرسال الرد في الapi نقوم بتحديد الresource fields التي يتم إرسالها كما بالشكل التالي resource_fields={ 'posts': fields.List(fields.Nested({ "title": fields.String, "content": fields.String, }))}1 نقطة
-
بداية من الإصدار 0.7 في فلاسك Flask تم إضافة الخاصية __version__ والتي تحتوي على رقم الإصدار الحالي (المثبت لديك): >>> import flask >>> flask.__version__ '1.1.2' >>> إن كنت تعمل على إصدار أقدم من 0.7 فسوف يسبب الكود السابق خطأ AttributeError لأن الخاصية لم تكن موجودة بعد حينها، لكن يمكنك أن تقوم بإستخدام المكتبية pkg_resources لمعرفة إصدار فلاسك Flask لديك: >>> import pkg_resources >>> pkg_resources.get_distribution('flask').version '0.6.1' ملاحظة: الطريقة السابقة تعمل مع كل الإصدارات ولكن قد تحتاج إلى تنفيذ الأمر التالي إن لم تجد المكتبة pkg_resources لديك: pip install setuptools طريقة أخرى وهي إستخدام الامر freeze والذي يقوم بعرض كل المكتبات المثبتة لديك وإصداراتها: pip freeze وإن كنت تستعمل ليتنكس فيمكنك أن تعرض إصدار مكتبة فلاسك Flask فقط بهذا الشكل: pip freeze | grep flask أيضًا تستطيع أن تستخدم الأمر flask (إن كان يعمل لديك) وسيعرض لك إصدار بايثون وفلاسك وكذلك Werkzeug: flask --version1 نقطة
-
نعم في Nltk يمكنك استخدام Part-Of-Speech tagger (pos_tag)، حيث أن ماتطلبه ينتمي إلى فئة NNP. # التي تقوم بتصنيف الكلمات pos_tag استيراد الوحدة from nltk.tag import pos_tag # تحديد الجملة sentence = "Ali Ahmed wishes to travel outside Syria in any way " # tokens نقوم الآن بتقسيم النص إلى وحدات tokens=sentence.split() # تصنيفها النحوي post = pos_tag(tokens) # [('Ali', 'NNP'), ('Ahmed', 'NNP'), ('wishes', 'VBZ'), ('to', 'TO'), ('travel', 'VB'),('outside', 'JJ'), ('Syria', 'NNP'), ('in', 'IN'), ('any', 'DT'), ('way', 'NN')] # NNP استخلالص ال pnouns = [word for word,pos in post if pos == 'NNP'] # ['Ali', 'Ahmed', 'Syria'] لإيجاد ال Possessive Nouns سنأخذ فقط الأسماء التي تنتهي ب " 's " أو " s' " وهنا يمكننا أن نستخدم الدالتين: str.endswith("'s") str.endswith("s'") أي: # التي تقوم بتصنيف الكلمات pos_tag استيراد الوحدة from nltk.tag import pos_tag # تحديد الجملة sentence = "Ali Ahmed wishes to travel outside Syria in any way " # tokens نقوم الآن بتقسيم النص إلى وحدات tokens=sentence.split() # تصنيفها النحوي post = pos_tag(tokens) # [('Ali', 'NNP'), ('Ahmed', 'NNP'), ('wishes', 'VBZ'), ('to', 'TO'), ('travel', 'VB'),('outside', 'JJ'), ('Syria', 'NNP'), ('in', 'IN'), ('any', 'DT'), ('way', 'NN')] # NNP استخلالص ال pnouns = [word for word,pos in post if pos == 'NNP'] # ['Ali', 'Ahmed', 'Syria'] sentence = "Ali took Daniel Jackson's hamburger and Agnes' fries" possessives = [word for word in sentence.split() if word.endswith("'s") or word.endswith("s'")] possessives # ["Jackson's", "Agnes'"]1 نقطة
-
نعم ف Seaborn متطورة أكثر مما تتخيل، حيث أنها وبشكل افتراضي تقوم برسم ال Confidence Interval وتمكنك من التحكم بمعامل الثقة من خلال الوسيط ci الذي تكون قيمته الافتراضية مساوية ال 95%. على سبيل المثال: import numpy as np import seaborn as sns import matplotlib.pyplot as plt # بفرض البيانات التالية x = np.random.randint(0, 10, 10) y = x+np.random.normal(0, 1, 10) # وسوف نضبط معامل الثقة على 80 regplot سنقوم بتمثيلها من خلال ax = sns.regplot(x, y, ci=80) الخرج: حيث أن الظل الأزرق يمثل ال confidence level (مستوى الثقة) حول نقطة ما حيث أنه كلما زادات سماكة الظل كلما كان ذلك يعني أن الثقة أكبر. مثال آخر على ال linplot: import numpy as np import seaborn as sns import matplotlib.pyplot as plt x = np.random.randint(0, 30, 100) y = x+np.random.normal(0, 1, 100) ax = sns.lineplot(x, y) الخرج: حيث أننا هنا لم نضبط عامل الثقة فاعتبره تلقائياً 95%.1 نقطة
-
يمكنك استخدام الددالتين Axes.set_xticks للمحور السيني و Axes.set_yticks للمحور العيني لتعين وضبط ال ticks من خلال قائمة محددة بحجم محدد: Axes.set_xticks(self, ticks, minor=False) Axes.set_yticks(self, ticks, minor=False) بحيث أن الوسيط ticks هو قائمة تحتوي مواقع ال tick المراد وضعها لكل من المحورين x-axis/y-axis، والوسيط الثاني لتحديد فيما إذا كنت تريد ضبط ال ticks الثانوية أيضاً حيث أنه في الحالة الافتراضية يكون major أي الرئيسية منها. كما نستخدم الدالة set_xticklabels و set_yticklabels لتعديل تسمياتها حيث نمرر لها قائمة بالتسميات المطلوبة. لذا يمكنك التعديل على الكود الخاص بك ليصبح: import seaborn as sns import matplotlib.pyplot as plt import pandas as pd import numpy as np sns.set(style="darkgrid") data = pd.DataFrame({'D': np.random.rand(8), 'C': np.random.rand(8)}) ax = sns.lineplot(data=data) # ضبط عدد العلامات للمحور السيني ax.set_xticks(range(8)) # لها labels تحديد ال ax.set_xticklabels(['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']) الخرج: أو يمكنك القيام بذلك من خلال الدالة plt.xticks للمحور السيني و plt.yticks للمحور العيني: import seaborn as sns import matplotlib.pyplot as plt import pandas as pd import numpy as np sns.set(style="darkgrid") data = pd.DataFrame({'D': np.random.rand(8), 'C': np.random.rand(8)}) ax = sns.lineplot(data=data) plt.xticks(range(8), ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']) حيث نمرر لها مُعطيين الأول يمثل عددها والثاني التسميات. ويكون الخرج مطابقاً للخرج أعلاه.1 نقطة
-
يمكنك القيام بذلك من خلال المرور على كل المحاور axes واستخدام الدالة text: text(x, y, text, fontsize ) حيث أن كل من x و y يمثلان الموقع المراد إضافة النص فيه. بينما text تمثل النص المطلوب كتابته. وأخيراً fontsize للتحكم بحجم النص المكتوب. import seaborn as sb sns.set_style("dark") data = sb.load_dataset("exercise") fg = sb.FacetGrid(data, row="diet", col="time", margin_titles = True) fg.map(sb.regplot, "id", "pulse", color = ".4") # لدينا axes نقوم بالمرور على كل for text in fg.axes.flat: # نضيف النص text.text(8, 110,'HsoubAcademy', fontsize = 10) الخرج: أيضاً يمكنك وضع عنوان لكل محور أو subpllot بالشكل التالي: import seaborn as sb sns.set_style("dark") data = sb.load_dataset("exercise") fg = sb.FacetGrid(data, row="diet", col="time", margin_titles = True) fg.map(sb.regplot, "id", "pulse", color = ".4") names=['Deltaic', 'Plains','Hummock', 'Swale', 'Sand Dunes', 'Mountain'] for text, title in zip(g.axes.flat, names): text.set_title(title) text.text(8, 110,'HsoubAcademy', fontsize = 10)1 نقطة
-
أفضل طريقة هي استخدام catplot وهي مخصصة للتعامل مع البيانات الفئوية، وقد جاءت كتحسين ل FacetGrid، وتقوم الدالة catplot بإرجاع كائن من نوع FacetGrid بحيث يمكن استخدامه بكفاءة لرسم الرسوم البيانية لميزات متعددة ضمن نفس الشكل، ويمكننا من خلالها رسم البيانات في ثمانية أنواع مختلفة من الرسوم البيانية المحددة بواسطة معلمة النوع kind حيث يمكن أن تجعل التمثيل البياني على شكل stripplot أو barplot أو boxplot. المثال التالي يوضح كيفية استخدامها: import pandas as pd import matplotlib.pyplot as plt import seaborn as sns df = pd.DataFrame( {"Catg": [3,1,2,2,3,3,3,3,1,2,2,1], "Price" : [26,80,54,50,24,25,22,23,80,53,54,77]}) sns.catplot(data = df, x = 'Catg', y = 'Price', kind = 'strip') الخرج: حيث قمنا برسم فئة المنتجات على المحور السيني والميزة المطلوبة Max_Price على المحور العيني. أيضاً قمنا بتحديد النوع kind على أنه stripplot لذا يمكنك اختيار أي نوع آخر مثل bar في حالة أردت barplot أو box ل boxplot. ومايلي يجمع كل الأنواع: Categorical scatterplots: stripplot() (with kind="strip"; the default) swarmplot() (with kind="swarm") Categorical distribution plots: boxplot() (with kind="box") violinplot() (with kind="violin") boxenplot() (with kind="boxen") Categorical estimate plots: pointplot() (with kind="point") barplot() (with kind="bar") countplot() (with kind="count")1 نقطة
-
بالتأكيد يمكنك القيام بذلك فالارتباط هو أمر مهم جداً لعلماء البيانات، حيث يخبرنا كيف ترتبط المتغيرات في مجموعة البيانات ببعضها البعض وكيف تتحرك بالنسبة لبعضها البعض. وتتراوح قيمة الارتباط من -1 إلى +1، مع العلم أن 0 تشير إلى أن المتغيرين مستقلين عن بعضهما البعض. والقيم أكبر من 0 (أي الارتباط الموجب) إلى أن المتغيرات تتحرك في نفس الاتجاه أما السلبي إلى عكس ذلك. ويمكنك رسم ال Correlation heatmap باستخدام seaborn بسهولة من خلال الدالة heatmap مع الاستعانة بالتابع corr الذي يُطبق على إطار بيانات ويُرجع correlation matrix أي مصفوفة الارتباط بالشكل التالي: import pandas as pd import matplotlib.pyplot as plt import seaborn as sns data = pd.DataFrame({"Day 1": [7,1,5,6,3,10,5,8], "Day 2" : [1,2,8,4,3,9,5,2], "Day 3" : [4,6,5,8,6,1,2,3], "Day 4" : [5,8,9,5,1,7,8,9]}) # لعرض الارتباطات corr نستخدم الدالة print(data.corr()) """ Day 1 Day 2 Day 3 Day 4 Day 1 1.000000 0.377218 -0.605940 0.194795 Day 2 0.377218 1.000000 -0.373907 0.287647 Day 3 -0.605940 -0.373907 1.000000 -0.416863 Day 4 0.194795 0.287647 -0.416863 1.000000 """ الآن لرسمها: # plotting correlation heatmap dataplot = sb.heatmap(data.corr(), cmap="YlGnBu", annot=True) الخرج:1 نقطة
-
يمكنك حفظ المخططات البيانية من خلال الدالة savefig: savefig(fname, dpi=None, format=None,bbox_inches=None) حيث أن الوسيط الأول يمثل المسار الذي تود فيه حفظ الملف الناتج، وال dpi أو dots per inch (وهي وحدة قياس تحدد عدد النقاط الفردية التي يمكن وضعها في مربع 1 × 1 بوصة) وزيادتها تؤدي لزيادة حجم الصورة. أما الوسيط الثالث فهو لتحديد الصيغة التي سيتم فيها حفظ الشكل البياني أي 'png', 'pdf', 'svg' ...إلخ. أما الوسيط الأخير ففي حال ضبطه على tight سيتم إزالة المسافة البيضاء الغير مرغوب فيها التي تكون حول الرسم البياني. لذا لحفظ مخططك يمكنك أن تكتب: import seaborn as sns import pandas as pd import numpy as np import matplotlib.pyplot as plt plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True df = pd.DataFrame(np.random.random((5, 5)), columns=["a", "b", "c", "d", "e"]) sn = sns.pairplot(df) sn.savefig("plot.png")1 نقطة
-
يمكنك نقل الملفات والمجلدات عبر الأمر التالي: cp old/path/filename new/path/filename cp old/path/dirname new/path/dirname -r يجب أن تستخدم r- عندما تحاول نقل مجلد ما أيضًا، يمكنك محاولة إنشاء/نقل المشروع في مجلد downloads (في الذاكرة الداخلية) والدخول إلى المشروع عبر الأمر التالي: cd storage/downloads/my-project ثم تنفيذ أوامر composer مرة أخرى1 نقطة
-
في الغالب ليس لديك صلاحيات للتعديل على مجلد المشروع، لذلك أرجو منك تنفيذ الأمر التالي: termux-setup-storage سيطلب منك صلاحيات الوصول إلى الملفات، ويجب أن تقوم بالسماح للتطبيق من خلال الضغط على "سماح allow" بعد ذلك حاول مرة أخرى تحميل المكتبة عبر composer في مجلد المشروع1 نقطة
-
يتم تحميل المكتبة في المكان الحالي في سطر الأوامر، ويمكنك التأكد من هذا الأمر من خلال تنفيذ الأمر التالي: ls وستجد أنه يوجد كل الملفات والمجلدات الخاصة بـ composer (مثل composer.json و vendor .. إلخ). أما إن أردت تثبيت المكتبة (وملفات composer) في مشروع موجود، فعليك أن تذهب إلى مجلد المشروع أولًا من خلال الأمر cd، على النحو التالي: cd path/to/my-project مع تغير المسار إلى مسار المشروع الخاص بك.1 نقطة
-
الملف vendor/autoload.php يتم توليده من قِبل Composer وهو عبارة عن أداة تقوم بإدارة الحزم والمكتبات الخاصة بلغة PHP في المشروع، يمكنك تحميل وتثبيت Composer من هنا لماذا تستعمل Composer؟ إذا كنت تعمل على أحد المشاريع وتستخدم العديد من الحزم والمكتبات في مشروع، فستجد أنك تقوم ببعض الخطوات الروتينية في كل مرة تريد إضافة أو تحديث مكتبة في المشروع، حيث تقوم بتحميل المكتبة من الإنترنت وتضيفها إلى المشروع حسب طريقة الإستدعاء الخاصة بها، وعليك أن تتأكد بنفسك من الإصدار الذي تريد أن تعمل عليه (وتبحث عنه في الإنترنت أيضًا)، كما يجب أن تقوم بإستخدام الدالة require و الدالة include لإستدعاء المكتبة ولن تستطيع إستخدام namespace بسهولة. وهنا يأتي دور Composer حيث يقوم بكل هذه الخطوات بصورة تلقائية، فعلى سبيل المثال لتثبيت المكتبة monolog/monolog (مكتبة خاصة بالتسجيل logging)، كل ما عليك هو تنفيذ الأمر التالي في مجلد المشروع: composer require monolog/monolog وسيقوم Composer بالبحث في موقع packagist (أكبر موقع يحتوي على مكتبات لغة PHP بشكل مجاني) إلى أن يجد المكتبة المطلوبة ويتأكد من الإصدار المستخدم في المشروع (يمكنك تحديد إصدار معين عند عملية التثبيت)، وسيقوم Composer بتحميل الإصدار الصحيح في مجلد vendor حيث سيتم عمل المجلد monolog/monolog في داخله وستجد فيه كل ملفات المكتبة، ثم سينشئ Composer ملف autoloader.php لجميع المكتبات المحمّلة وسيحمّل الاعتمادية كاملةً في المشروع الذي تعمل عليه، وبالتالي ليس عليك سوى إستدعاء هذا الملف فقط لتستطيع إستخدام كل المكتبات التي تم تثبيتها بشكل مباشر. الملفات التي يتم إنشائها تلقائيًا من خلال Composer يقوم Composer بإنشاء بعض الملفات الإضافية، وهي ملفات أساسية لكي يعمل (يتم إنشاء هذه الملفات أول مرة فقط، وبعد ذلك يتم التعديل عليها فقط عند تثبيت أي مكتبة جديدة). من ضمن تلك الملفات ستجد الملف composer.json وهو يحتوي على كل المكتبات التي تم تثبيتها في المشروع مع إصدارها الحالي. محتوى الملف composer.json: { "require": { "monolog/monolog": "^2.3" } } وستجد الملف composer.lock، وهو ملف يحتوي على كل المكتبات والحزم التي تم تثبيتها بالتفصيل (إصدار PHP المطلوب لتعمل المكتبة ومصدر المكتبة ومالك المكتبة وحقوقها .. إلخ)، وكذلك المكتبات والحزم الإضافية التي تحتاجها المكتبات. يمكنك الآن أن تستعمل المكتبة monolog/monolog كالتالي: <?php require __DIR__ . '/vendor/autoload.php'; $log = new Monolog\Logger('name'); $log->pushHandler(new Monolog\Handler\StreamHandler('app.log', Monolog\Logger::WARNING)); $log->warning('Foo'); لاحظ تم إستخدام الأصناف Monolog\Logger و Monolog\Handler\StreamHandle بشكل مباشر، وذلك لأننا إستخدمنا الملف vendor/autoload.php في بداية الملف، حيث يقوم بتجهيز وإستدعاء كل الملفات المطلوبة تلقائيًا. الكود السابق سوف ينشيء ملف باسم app.log وستم كتابة بعض البيانات فيه: [2021-12-01T19:11:32.629010+00:00] name.WARNING: Foo [] [] إدارة المكتبات من خلال Composer يمكنك أيضًا أن تقوم بتحديث المكتبات من خلال الأمر التالي: composer update عند تنفيذ هذا الأمر، فسيبحث composer عند أحدث إصدار لكل مكتبة يمكن تثبيته، ويقوم بتحديث المكتبات. أو يمكن حذف أحد المكتبات من خلال الأمر remove واسم المكتبة التالي: composer remove monolog/monolog لمزيد من المعلومات عن Composer يمكنك أن تقرأ هذه المقالات هنا:1 نقطة
-
كتجربة مستقلة، حاول حذف أقواس ON اي اكتب الشرطين بعدها مباشرة وليس ضمن () ON1 نقطة
-
ألم بحدث تكرار في النتائج؟ يمكن فصل الاستعلام لاستعلامين جزئيين، ودمج نتاىجهما باستخدام Union .. أو استخدم المعامل IN مثل ON F.ID IN (X.TOP, X.DOWN) وحل آخر هو نقل الشرط لعبارة where أرجو تجريب هذه الأفكار، وطرح نتيجة تطبيقهم، شكرا لك1 نقطة
-
1 نقطة
-
إنها مسألة في غاية البساطه. هذا عن طريق استخدام الوسم LINK مع اضافة سمة العلاقة REL وسمة الرابط او المسار HREF ونوع الملف إذا كان صوره او ايقونة TYPE <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" /> لنرى مثال كامل: <!DOCTYPE html> <html> <head> <title>أكاديمية حسوب</title> <link rel="shortcut icon" href="./favicon.ico" type="image/x-icon" /> </head> <body> محتويات الموقع </body> </html> هذا مثال بسيط يوضح المكان الصحيح الذي يتم وضع وسم link بهِ وهو بداخل الوسم head ولا يُنصح بوضعه خارج هذا الوسم لان هذا هو مكانه الصحيح. وكما ترى قمنا بوضع سمة rel ومحتواها هو shortcut ثم مسافة icon وتعني هذه الكلمات انها علاقة طريقة مختصره لرمز او لأيقونة. ثم استخدما href لجلب الصوره او الأيقونه التي ستظهر بجانب عنوان الموقع وغالباً يكون المسار هو ./favicon.ico وهذا اﻷسم افتراضي وليس اجباري ولكن انصح بتسميته هكذا ووضعه بجوار الملف الأساسي لموقعك index.html ولا تضعهُ بداخل مجلد آخر على سبيل المثال img/favicon.ico. لماذا؟! هذا ﻷن المتصفحات الحديثة تقوم بالبحث تلقائي عن مسار هذه اﻷيقونه لوضعها كشعار بجانب عنوان الموقع إذا كنت نسيت او تعمدت عدم وضع هذا الوسم المسؤل عن اظهار تلك اﻷيقونه. ثم type التي تحتوي على هذا النوع image/x-icon وهذا ليس إلزامي ويمكنك تجاهل هذه النقطه. من فضلك تفقد الملف المُرفق favicon.zip1 نقطة