لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 09/06/21 في كل الموقع
-
حسب قرائتي لكل من مصادر websockets في node.js و socket.io لاحظت أن كل منها مستخدم للتعامل مع البيانات بصورة مباشرة من خلال إجراء اتصال مع خادم الويب وتبادل البيانات. ماهي الفروقات بين كل منها؟ وأي منهما أفضل؟3 نقاط
-
مجرد تفكير منطقي $id = $_POST['id']; // من المفترض ان هذا هو الاي دي الخاص بالعنصر نفسه $order = $_POST['order']; // و من المفترض ان هذا هو رقم الطلب الذي بداخله يوجد هذا العنصر اول خطوة تتأكد من انك قمت بتمرير قيمة ال id للعنصر ( و ليس للطلب ) بشكل سليم و نفترض ان ده حصل بالفعل يبقى الشرط في تعليمة الحذف هايتنفذ مش هايقول لأ $result = $conn->query("DELETE FROM order_collars WHERE id='$id' "); لفت انتباهي هنا الخلل ده و اظنه سبب المشكلة $ask = $conn->query("select * from order_collars WHERE order_id='$id' "); -------------- المفروض بديهي حقل order_id يكون هو الرابط بين العنصر و الطلب المتواجد به العنصر مثلا id العنصر نفسه زي ما شفت في الصورة اللي حضرتك ارفقتها 29 , 30 , 31 و كلهم مخصصين للطلب رقم 11 يبقى انا عاوزة احدد من الجدول كل البيانات المرتبطة بالطلب رقم 11 مش بال 29 و ال 30 و ال 31 و عشان كده هو ما بينفذش تعليمة ال update لانه الشرط اللي بناء عليه هاينفذ التعليمه دي لم يتحقق جرب اربط الاستعلام بتاع التحديد ب اي دي الطلب مش العنصر $ask = $conn->query("select * from order_collars WHERE order_id='$order' "); -------------- كده الاستعلام هايكون منطقي و صحيح3 نقاط
-
2 نقاط
-
لدي مشكلة في تكوين 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' } }, } }; };2 نقاط
-
السلام عليكم .. انا عندي مشكله في كودالcolor مش بيتنفذ و حاولت بأكتر من طريقه بس برضه ما فيش فايدة .....بالرغم ان باقي الأكواد تبع الcssشغاله تمام... و هي نفس المشكله علي جميع البرامج عندي الي شغاله عليها زي (visual studio code,, وcomodo)الرجاء الرد.. شكرا.2 نقاط
-
لدي مجموعة صور jpeg ضمن مجلد، وملف نصي مقابل له يحتوي على اسم الملف وتسمية الفئة المرتبطة "labels". والآن أحاول تحويل بيانات التدريب هذه إلى ملف tfrecords . لذا كيف يمكنني القيام بذلك؟2 نقاط
-
عندما أقوم بتحميل بعض الحزم من خلال npm ضمن مشروع node.js ألاحظ وجودها ضمن الملف package.json، وأقوم بإزالتها بشكل يدوي من الملف ولكن أعتقد بأن ملفات هذه الحزم تبقى ضمن المجلّد node_modules. كيف يمكنني إزالة ملفات هذه الحزم الآن الغير موجودة ضمن الملف package.json؟ أعلم بأنه يمكنني إزالتها بشكل يدوي من المجلّد ولكن أبحث عن طريقة تقوم بإزالة جميع هذه الملفات بشكل اوتوماتيكي2 نقاط
-
2 نقاط
-
أقوم بتثبيت الحزم من خلال مدير الحزم npm في مشروع node.js من خلال الأمر التالي: npm install <moduleName> ولقد قمت بتثبيت بعض الحزم للتجربة والآن أرغب بإزالتها من المشروع. هل أقوم فقط بإزالة المجلّد من node_modules؟ أم يجب علي تنفيذ أمر آخر لإزالة الحزمة نهائياً من المشروع؟2 نقاط
-
لديّ .tfrecord لكني لا أعرف كيف تمت هيكلته. لذا كيف يمكننا فحص المخطط لفهم ما يحتويه ملف .tfrecord؟ r = tensorflow.TFRecordReader() myfile = tensorflow.train.string_input_producer("f.tfrecord") _, serialized_record = r.read(myfile) ... كيفية فحص serialized_record...2 نقاط
-
أقوم بإنشاء تطبيق react باستخدام واجهة المستخدم materialui و nextjs. أنا أستخدم مكون <Autocomplete /> ، يتم توفيره بواسطة واجهة المستخدم materialui وتجاوز بعض أنماطه بأنماط خاصة بي مثل هذا: <Autocomplete classes={{ root: `${styles[`search__autocomplete`]} ${ styles[`search--${variant}__autocomplete`] }`, inputRoot: `${styles[`search__autocomplete-input`]} ${ styles[`search--${variant}__autocomplete-input`] }` }} /> عند تحديث الصفحة ال css الخاص بالمكون للحظة ياتي مشوه ثم يرجع لحالته الطبيعية هل هناك حل للمشكلة1 نقطة
-
عندما أقرأ كود جانغو Django أحيانًا، أرى في بعض القوالب الدالة reverse. لست متأكدًا تمامًا من ماهية هذه الدالة أو ما تفعله ولكن يتم استخدامها مع الكائن HttpResponseRedirect. كيف ومتى يفترض استخدام دالة reverse في جانغو Django؟1 نقطة
-
أقوم بتحميل بيانات لدي بالشكل التالي: import pandas as pd df = pd.read_csv("D:\\data.csv") df['review'] لكن يظهر لي هذا الخطأ: reviews_new['review'] Traceback (most recent call last): File "<ipython-input-43-ed485b439a1c>", line 1, in <module> reviews_new['review'] File "C:\Users\30216\AppData\Local\Continuum\Anaconda2\lib\site-packages\pandas\core\frame.py", line 1997, in __getitem__ return self._getitem_column(key) File "C:\Users\30216\AppData\Local\Continuum\Anaconda2\lib\site-packages\pandas\core\frame.py", line 2004, in _getitem_column return self._get_item_cache(key) File "C:\Users\30216\AppData\Local\Continuum\Anaconda2\lib\site-packages\pandas\core\generic.py", line 1350, in _get_item_cache values = self._data.get(item) File "C:\Users\30216\AppData\Local\Continuum\Anaconda2\lib\site-packages\pandas\core\internals.py", line 3290, in get loc = self.items.get_loc(item) File "C:\Users\30216\AppData\Local\Continuum\Anaconda2\lib\site-packages\pandas\indexes\base.py", line 1947, in get_loc return self._engine.get_loc(self._maybe_cast_indexer(key)) File "pandas\index.pyx", line 137, in pandas.index.IndexEngine.get_loc (pandas\index.c:4154) File "pandas\index.pyx", line 159, in pandas.index.IndexEngine.get_loc (pandas\index.c:4018) File "pandas\hashtable.pyx", line 675, in pandas.hashtable.PyObjectHashTable.get_item (pandas\hashtable.c:12368) File "pandas\hashtable.pyx", line 683, in pandas.hashtable.PyObjectHashTable.get_item (pandas\hashtable.c:12322) KeyError: 'review' كيف أقوم بحل هذا الخطأ؟1 نقطة
-
هذا هو سير العمل الحالي الخاص بي لاستيراد الصور والأيقونات في 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 نقطة
-
لدي بعض الشيفرات البرمجية التي سيتم تنفيذها بطرق مختلفة تبعاً لنظام التشغيل. ففي حال كان نظام التشغيل ويندوز أرغب بتنفيذ عمليات معيّنة وهكذا بالنسبة لبقية الأنظمة. هل يوجد طريقة أستطيع من خلالها معرفة أو اختبار شرط نظام التشغيل الذي يعمل عليه node.js ضمن المشروع؟1 نقطة
-
لدي نسخة قديمة من npm مثبتة في النظام وعندما أقوم بمحاولة تثبيت أي حزمة من خلال الأمر npm install يظهر لي الخطأ التالي: npm ERR! Error: failed to fetch from registry npm ERR! at /opt/node0610/lib/node_modules/npm/lib/utils/npm-registry-client/get.js:139:12 npm ERR! at cb (/opt/node0610/lib/node_modules/npm/lib/utils/npm-registry-client/request.js:32:9) npm ERR! at Request._callback (/opt/node0610/lib/node_modules/npm/lib/utils/npm-registry-client/request.js:137:18) npm ERR! at Request.callback (/opt/node0610/lib/node_modules/npm/node_modules/request/main.js:109:22) npm ERR! at Request.<anonymous> (/opt/node0610/lib/node_modules/npm/node_modules/request/main.js:198:58) npm ERR! at Request.emit (events.js:88:20) npm ERR! at ClientRequest.<anonymous> (/opt/node0610/lib/node_modules/npm/node_modules/request/main.js:195:10) npm ERR! at ClientRequest.emit (events.js:67:17) npm ERR! at CleartextStream.<anonymous> (http.js:1134:11) npm ERR! at CleartextStream.emit (events.js:67:17) npm ERR! You may report this log at: npm ERR! <http://github.com/isaacs/npm/issues> npm ERR! or email it to: npm ERR! <npm-@googlegroups.com> npm ERR! npm ERR! System Linux 2.6.18-194.el5 npm ERR! npm ERR! Additional logging details can be found in: npm ERR! /opt/node0610/lib/node_modules/npm-debug.log npm not ok كيف يمكنني حل هذه المشكلة؟1 نقطة
-
أعرف أن هناك طرقاً لطباعة جزء من ال dataframe أو series كأسماء الأعمدة أو أول بضعة صفوف وكذلك أخر بضعة صفوف، لكن أريد أن أقوم بطباعة كافة ال dataframe على الشاشة، كيف يمكنني فعل هذا؟1 نقطة
-
لدي سلسلة نصية معينة فيها محارف خاصة ومسافات، وأرغب بتحويلها ضمن الترميز URI encode، فهل هنالك حزمة معيّنة يجب علي استخدامها في node.js لتحقيق ذلك؟ أم يوجد بعض التوابع المدعومة لذلك بشكل افتراضي؟1 نقطة
-
تأكدي من الحفظ بعد عمل التعديلات ، وحدثي الصفحة عن طريق ctrl + F5 لحذف الكاش من الصفحة1 نقطة
-
أرجو منك التأكد من أن الملف الذي تعملين عليه في محرر الأكواد VS Code مثلًا هو نفس الملف الذي يعمل في المتصفح، لأن في بعض الأحيان يعمل الشخص على ملفات مختلفة ويجد أن النتيجة لا تظهر في المتصفح. الأمر الأخر، في حالة كانت الملفات صحيحة، ويتم حفظها بشكل سليم، فربما يوجد مشكلة في اللمتصفح (بالتحديد في الملفات المؤقتة)، لذلك تجربة متصفح آخر هو أسرع حل إن كانت لديك متصفح آخر بالفعل، أو حذف الملفات المؤقتة من خلال الضغط على Ctrl + Shift + delete في المتصفح، ثم تحديد cookies and other site data و cached image and files والضغط على ok/clear. ثم إعادة تحميل الصفحة مرة أخرى. في حالة لم تعمل اي من الطرق السابقة، فأرجو منك إرفاق كود HTML و CSS كاملًا للتأكد من عدم وجود مشاكل به.1 نقطة
-
اولا انا متشكره جدا .. بس هي المشكله عندي انه مش بيتنفذ خالص حتي ع body او اي عنصر تاني و انا بكتبه بالطريقه ديه زي ما حضرتك كتبت بس انا اتلغبط ..داخل العنصر و برضه مافيش فايده ..1 نقطة
-
عندما أقوم بوضع DEBUG = True في ملف settings.py ثم تشغيل خادم جانغو Django ، فإنه يعمل بشكل مثالي. ولكن عندما أقوم بتغيير DEBUG إلى False في ملف الإعدادات ، يتوقف الخادم ويعطي الخطأ التالي في موجه الأوامر: CommandError: You must set settings.ALLOWED_HOSTS if DEBUG is False. بعد أن قمت إضافة رابط المشروع http://127.0.0.1:8000 إلى ALLOWED_HOSTS ، تلقيت الخطأ في المتصفح: Bad Request (400) هل من الممكن تشغيل جانغو Django بدون وضع التصحيح DEBUG؟1 نقطة
-
إذا قمتِ بكتابة كود CSS في ملف خارجي أو حتى في عنصر style فيجب التأكد من أنه لا توجد خصائص أخرى تقوم بتغير خلفية عنصر div، أما في الحالة الثانية (كتابة خصائص CSS بداخل عنصر div) فإن الكود الصحيح هو: <div style="background-color: #080;">Content Here</div> مع العلم أن عنصر div لن يظهر إلا إن تم وضع طول وعرض له أو كان يتحوي على محتوى (نصوص أو صور أو عناصر أخرى)، غير ذلك لن يظهر عنصر div لأن طوله يساوي 0.1 نقطة
-
div{ background-color:#080; } الكود السابق لا يوجد به أخطاء لكن الخطأ في هذا الكود <div background-color:#080> يجب تصحيحه ليصبح بهذا الشكل <div style="background-color:#080"> يجب أن تعرفي أن التنسيق الذي سوف يأخذه الـ div هو inline styling ، يعني ذلك أنه سوف يأخذ بكل الأحوال التنسيق الذي يتضمن في صفحة HTML1 نقطة
-
انا كتبت الكود بأكتر من طريقه يعني مره في صفحة الcssالخارجيه : div{ background-color:#080; } و كتبته داخل العنصر نفسه: <div background-color:#080>1 نقطة
-
تحيه طيبه للجميع كل ما حاولت ارفع تطبيقي على جوجل بلاي احصل على الاشعار التالي: يحتوي App Bundle على رموز برمجية أصلية، ولم يتم تحميل أي رموز لتصحيح الأخطاء. ننصحك بتحميل ملف رموز لتسهيل عملية تحليل الأعطال وأخطاء ANR وتصحيح الأخطاء فيهما. ما المقصود بها وكيف يمكن تجنبها او حلها ؟ وهل توجد مخاطر على تطبيقي منها ؟ مع العلم ان برمجة تطبيقي flutter1 نقطة
-
أريد إضافة نماذج جديدة form ديناميكيًا إلىformset في جانغو Django، بحيث عندما ينقر المستخدم على زر "إضافة" ، فإنه يقوم بتشغيل JavaScript الذي يضيف نموذجًا جديدًا (وهو جزء من formset) إلى الصفحة. كيف أقوم بهذا الأمر؟1 نقطة
-
1 نقطة
-
تطوير WordPress ينقسم إلى جزئين: تطوير قوالب WordPress تطوير الإضافات Plugins ولتعلم كيفية تطوير أي منهما يجب أن تكون على دراية بالأساسيات البرمجية بشكل عام وبلغة PHP بشكل خاص، لأن WordPress مبني بالكامل بهذه اللغة، كما يجب أن تقوم بتعلم أستخدام WordPress نفسه وتجريب كيفية تركيب الإضافات والقوالب، ثم تقوم بتطوير أول قالب بسيط من بعض الأساسيات مثل إنشاء Header و Footer وصفحة التدوينات .. إلخ، ثم تنتقل إلى عمل قوالب متطورة أكثر ولها لوحة تحكم خاصة، لكي يستطيع المستخدم من تعديل إعدادات القالب والموقع عمومًا أو حتى التواصل مع مطوري القالب من خلالها، ستحتاج بعد ذلك تعلم كيفية عمل optimize لموقع مبني بـ WordPress (الكثير من المواقع تعاني من مشاكل في البطيء بسبب القوالب أو الإضافات المثبتة)، لذلك ستكون هذه نقطة قوة لديك. بعد ذلك سيكون لديك المعرفة والخبرة الكافية للبحث عن المشاكل التي تواجه مستخدمي WordPress وتعلم كيفية حلها، كما إختبار القوالب الإحترافية وتحليلها سيوضح لك الكثير من الأمور التي تريد أن تتعلمها لكي يكون لديك المعرفة لإنشائها من الصفر. ينطبق نفس الأمر على تطوير الإضافات Plugins. إن كنت تسأل عن أي دورة تحتوي على مسار لتعلم WordPressن فتحتوي الأكاديمية على دورة تطوير تطبيقات الويب باستخدام لغة PHP، التي تقوم بالبدء بالأساسيات في البرمجة بإستخدام لغة PHP وكذلك البرمجة الكائنية OOP، ثم تنتقل إلى أساسيات إطار العمل Laravel (أشهر إطار عمل للغة PHP الوقت الحالي)، بعد ذلك تبدأ في التطبيق أكثر والتعمق في Laravel من خلال إنشاء نموذج مصغر لشبكة اجتماعية تشبه انستغرام، وكذلك عمل RESTful API للتطبيقات، وتتعلم بعد ذلك أيضًا تطوير موقع إعلانات مبوبة، وموقع لمشاركة الفيديوهات، بعد ذلك تنتقل لتعلم أساسيات WordPress وكيفية تطوير قوالب مخصصه لـ WordPress. وهذه الدورة الوحيدة التي تحتوي على شرح لنظام إدارة المحتوى WordPress يمكنك معرفة المزيد عن هذه الدورة من خلال هذه الصفحة (دورة تطوير تطبيقات الويب باستخدام لغة PHP). كما تحتوي الأكاديمية على الكثير من المقالات المتعلقة بلغة PHP وWordPress أيضًا، يمكنك الإطلاع عليها من هنا1 نقطة
-
بداية من الإصدار 1.10 من Django أصبحت is_authenticated عبارة عن خاصية attribute بدلًا من تابع method، ويمكنك أن تستخدمها كالتالي: if request.user.is_authenticated: # افعل شيئًا إذا تمت مصادقة المستخدم ويمكنك أن تستخدمها في القوالب، كالتالي: {% if request.user.is_authenticated %} <p>{{ user }}</p> {% endif %} أما بالنسبة إلى الإصدار 1.9 وما قبله، فيجب أن تقوم بإضافة أقواس الأستدعاء كالتالي: if request.user.is_authenticated(): # افعل شيئًا إذا تمت مصادقة المستخدم1 نقطة
-
لا يتحوي create-react-app على كل المميزات التي قد تحتاجها في المشروع، فعلى سبيل المثال لا يتحتوي على طريقة إفتراضية لتغير المسارات routes ويجب عليك تثبيت حزم أخرى مثل react-router لكي تقوم بذلك، كما أنه لا يمكنك من توليد صفحات ثابتة static pages بسهولة، ولا يحتوي على ميزة SSR (Server Side Rendering) أو SSG (Static Site Generation) بشكل إفتراضي، مما قد يؤثر على السيو SEO الخاص بالموقع، وغيرها من الممزايات التي تجد نفسك في حاجة إليها في كل مشروع تقريبًا تقوم بعمليه. ولحل مثل هذه المشاكل، ظهرت إطارات عمل مختلفة مبنية على React نفسه، مثل Next.js و Gatsby، ولكل منهما مميزات مختلفة، فعلى سبيل المثال يحتوي إطار العمل Next.js على العديد من المميزات منها: دعم TypeScript: لن تحتاج إلى الكثير من الخطوات لتستطيع أن تستخدم TypeScript في المشروع pre-rendering SSR + SSG : يدعم Next.js ما يسمى Hybrid أي أنه يقوم بتحويل الصفحات الثابتة إلى SSG تلقائيًا والصفحات الأخرى تكون من نوع SSR file-system routing: لن تحتاج إلى تثبيت حزم خارجية لكي تقوم بعمل Route System، فقط قم بتنظيم الملفات بالطريقة التي تريد وستجد أن كل المسارات تعمل بنفس طريقة ترتيب الملفات والمجلدات داخل بعضها البعض. zero config: لا يوجد أي إعدادات تحتاج إن أن تقوم بعملها لكي يعمل المشروع بكفاءة، فقط أكتب الكود وشاهد النتيجة في المتصفح مباشرة. Image Optimization: يمكن لإطار العمل Next.js ضغط وإعادة تحجيم الصور لتقليل حجم النطاق الترددي Bandwidth إلى أقصى حد من خلال عمل مكون Image مخصص. code splitting: يقوم Next.js بتقسيم الكود إلى ملفات صغيرة تسمى chunks ويتم تحميل الكود المطلوب فقط إلى المتصفح، وبالتالي يتم تحميل الصفحات بشكل أسرع وعرض النتيجة في وقت أقل. لذلك أنتقل الكثير من مطوري React.js إلى إستخدام Next.js وGatsby بسبب المميزات التي يقدمها.1 نقطة
-
لا توجد طريقة "built-in" للقيام بذلك في Django بشكل إفتراضي. سيظهر Django استثناء DoesNotExist في كل مرة. الطريقة الأسهل للتعامل مع هذا في Python هي إستخدام جملة try .. except، كالتالي: try: writers = User.objects.get(role="writer") except User.DoesNotExist: writers = None ما فعلته هوإستخدام نوع الخطأ User.DoesNotExist للتأكد من وجود الكائن، بهذه الطريقة يمكنك معرفة إن لم يوجد أي كتاب writers في الموقع، يمكنك أيضًا أن تستخدم نوع الخطأ ObjectDoesNotExist كالتالي: from django.core.exceptions import ObjectDoesNotExist try: writers = User.objects.get(role="writer") except ObjectDoesNotExist: writers = None وفي حالة كنت تريد أن يتم إحضار أو كائن فقط، فيمكنك أن تستخدم التابع first، كالتالي: User.objects.filter(role="writer").first() في حالة أردت التأكد فقط من وجود الكائن في قاعدة البيانات، فيمكنك أن تستعمل exists، كالتالي: User.objects.filter(role="writer").exists()1 نقطة
-
إضافة إلى الطرق التي ذكرها سامح، يمكنك القيام بذلك كالتالي: import os, django os.environ.setdefault("DJANGO_SETTINGS_MODULE", "app.settings") django.setup() # الآن يمكن أن تضع الكود هنا... وهذه الطريقة تجنبك حدوث بعض الاستثناءات مثل django.core.AppRegistryNoReady أو: import sys, os sys.path.append('/path/to/your/django/app') os.environ['DJANGO_SETTINGS_MODULE'] = 'settings' from django.conf import settings # أضف ماتريده بعدها1 نقطة
-
يمكنك أن تقوم بذلك من خلال العلامة < بدلًا من << ليصبح الأمر كالتالي: ./manage.py shell < clear_db.py يمكنك أيضًا أن تقوم بتنفيذ السكريبت من خلال الدالة exec، كالتالي: $ ./manage.py shell ... >>> exec(open("./clear_db.py").read()) وإن كنت تستعمل بايثون 2.7 فيمكنك أن تستخدم الدالة execfile، كالتالي: $ ./manage.py shell ... >>> execfile('clear_db.py') إن كنت تستعمل Windows Powershell فسوف تحتاج إلى إستخدام Get-Content: Get-Content clear_db.py | .\manage.py shell على العموم لا يُنصح بفعل ذلك من shell - وهذا لأنه لا ينبغي لك تنفيذ سكريبتات عشوائية من بيئة Django (ولكن هناك طرقًا للتغلب على ذلك). إذا كان هذا السكريبت سيتم تشغيله عدة مرات، فمن الجيد إعداده كأمر مخصص، كالتالي: ./manage.py clear_db للقيام بذلك، قم بإنشاء ملف باسم clear_db.py في مجلد management، وفي هذا الملف، حدد الأمر المخصص الخاص بك (تأكد من أن اسم الملف هو اسم الأمر الذي تريد التنفيذ منه.): from django.core.management.base import BaseCommand class Command(BaseCommand): def handle(self, **options): # قم بكتابة السكريبت هنا1 نقطة
-
يمكنك القيام بذلك بالشكل التالي: start = date(2012, 12, 11) end = date(2012, 12, 18) new_end = end + datetime.timedelta(days=1) ExampleModel.objects.filter(some_datetime_field__range=[start, new_end]) أو لمرونة أكبر يمكنك تصميم FilterBackend كالتالي: class FilterBackend(generic_filters.BaseFilterBackend): def filter_queryset(self, request, queryset, view): #POST ل request.data أو predicate = request.query_params if predicate.get('from_date', None) is not None and predicate.get('to_date', None) is not None: queryset = queryset.filter(your_date__range=(predicate['from_date'], predicate['to_date'])) if predicate.get('from_date', None) is not None and predicate.get('to_date', None) is None: queryset = queryset.filter(your_date__gte=predicate['from_date']) if predicate.get('to_date', None) is not None and predicate.get('from_date', None) is None: queryset = queryset.filter(your_date__lte=predicate['to_date']) return queryset1 نقطة
-
مقتبس من التوثيق "لكل حقل يحتوي على مجموعة اختيارات، سيكون للكائن طريقة get_FOO_display () ، حيث FOO هو اسم الحقل. تقوم هذه الطريقة بإرجاع قيمة الحقل بحيث يمكننا قراءتها." . لذا يمكنك إجراء التعديل التالي: class User(models.Model): name = models.CharField(max_length=200) bio = models.CharField(max_length=20000, blank=True) GENDER_CHOICES = ( ('M', 'Male'), ('F', 'Female'), ) gender = models.CharField(max_length=20, choices=GENDER_CHOICES) def __str__(self): return self.get_gender_display() أو: #views ضمن ال user = user.objects.filter(to_be_listed=True) context['gender'] = user.get_gender_display() #template ضمن ال {{ user.get_gender_display }}1 نقطة
-
عند إجراء django ranges باستخدام filter ، تأكد من معرفة الفرق بين استخدام كائن date و كائن datetime __range شامل للتواريخ ولكن إذا كنت تستخدم كائن datetime لتاريخ الانتهاء ، فلن يتضمن إدخالات ذلك اليوم إذا لم يتم تعيين الوقت. from datetime import date, timedelta startdate = date.today() enddate = startdate + timedelta(days=6) Sample.objects.filter(date__range=[startdate, enddate]) سوف يقوم الكود بإرجاع كافة الإدخالات من تاريخ البدء إلى تاريخ الانتهاء بما في ذلك تلك التواريخ المدخلة1 نقطة
-
لكل حقل يحتوي على مجموعة اختيارات ، سيكون للكائن دالة اسمها get_FOO_display () ، حيث FOO هو اسم الحقل. تقوم هذه الطريقة بإرجاع قيمة الحقل والتي يمكننا قراءتها, في ملف العرض user = User.objects.filter(to_be_listed=True) context['gender'] = User.get_gender_display() في التمبليت {{ user.get_gender_display }}1 نقطة
-
يوفر لك Django إمكانية إستخدام أي خاصية من خلال كتابة التالي: <النموذج>.get_<اسم الخاصية>_display وبالتالي لطباعة القيمة الكاملة للخاصية gender في النموذج User ستكون كالتالي: {{ user.gender}} # M {{ user.get_gender_display }} # Male وفي حالة إستخدام Jinja2 كمحرك القوالب، فيجب أن يتم إضافة قوسين في النهاية ، كالتالي: {{ user.get_gender_display() }}1 نقطة
-
دورة تطوير واجهات المستخدم، دورة شاملة لكل ما تحتاجه لعمل واجهات مستخدم متنوعة ومميزة، ولإتمام كل مشاريع الدورة، لن تحتاج إلى أي مصادر غير ما يتم شرحه في الدروس، ولكن ليس الهدف الأساسي هو إنهاء الدورة فقط، بل إحتراف تطوير واجهات المستخدم وللوصول إلى هذا الهدف يجب أن تزيد من المعلومات التي لديك، وأفضل مكان لفعل ذلك هو موسوعة حسوب، حيث تحتوي على كل المعلومات التي ستحتاجه أثناء فترة تعلمك للدروس في الدورة، وحتى بعد إنتهائك من الدورة، حيث سوف تعود إليها كل فترة لكي تتعلم أمور جديدة أو أشياء قد نسيتها أو حتى تعلم بعض الأشياء التي لم تغطيها الدورة، وذلك لأن الموسوعة شاملة لأغلب المعلومات لأي تقنية تحتويها. لذلك أنصحك بعد أن تتعلم أي خاصية جديدة أو أي عنصر جديد في الدورة أن تلقي نظرة على شرح هذا العنصر في موسوعة حسوب، لتحصل على معلومات أكثر عنه، ولكي تعتاد أيضًا تصفح الموسوعة، وبالتالي سوف يكون لديك حصيلة معلوماتية شاملة لكل ما تعلمته في الدورة بالإضافة إلى معرفة معلومات وملاحظات إضافية من الموسوعة، وبهذا ستكون قادرًا على إنشاء وتطوير أي واجهة مستخدم مهما كانت صعبة. أيضًا عليك بالتدريب مع نفسك وتجربة كل ما تتعلمه والتطبيق عليه، لأن مجرد مشاهدة الدروس لن يفيد كثيرًا مقارنة مع التطبيق العملي، حيث ستترسخ المعلومات في ذهنك ولن تنساها أبدًا على عكس مشاهدة الدروس فقط دون تطبيق. ملاحظة: يجب أن تقوم بإتمام المشاريع في كل المسارات لأنك ستحتاجها عند خوض الإمتحان، وذلك لأن من شروط بدء إمتحانك في نهاية الدورة هو التطبيق العملي مع المدرب، والاحتفاظ بالمشاريع العملية الناتجة لإرسالها للمراجعة. يمكنك أن تتعرف أكثر حول هذا الأمر من خلال مركز المساعدة من هنا.1 نقطة
-
يمكنك أن تستخدم المدخل date__range، كالتالي: Video.objects.filter(date__range=["2021-08-01", "2021-08-31"]) لاحظ أن الحل السابق يقوم بتنفيذ جملة BETWEEN في SQL، مما يعني أن النطاق يتضمن يومي 1/8 و 31/8 أيضًا. إذا كنت لا تريد تضمين هذين اليومين مع النتائج، فيمكنك أن تستخدم خاصية gt (greater-than) و lt (less-than)، كالتالي: import datetime videos = Video.objects.filter(video_date__gte=datetime.date(2021, 8, 1), video_date__lte=datetime.date(2021, 8, 31)) أو إذا كنت تحاول فقط التصفية حسب الشهر: Video.objects.filter(date__year='2021', date__month='08')1 نقطة
-
يمكنك الاستعانة ب onerror و onload وأيضا ال state لأنشاء كون يرجع لصورة مختارة أو يمكنك أن لا تضع الصورة وتضع مكانها مكون هذا المثال سيعطيك فكرة عن كيف يمكنك التلاعب في حالتك لتفادي النتيجة غير المرغوبة export default function ImageComponent () { const [state, setState] = useState({loading:true,error:false}) const handleImageLoaded = ()=> { setState({ status: false, error: false }); } const handleImageError= ()=> { setState({ status: false, error: true }); } return ( <div> <img src={state.error ? 'static/404.png' : fallbackImage} onLoad={handleImageLoaded} onError={handleImageError} /> {state.status && "loading"} </div> ); } export default ImageComponent;1 نقطة
-
أنت لا تحتاج استخدام webpack على الأقل مباشرة في مشاريعك لأن التكنولوجيات المتوفرة حاليا تجهز كل الاحتياجات لك في الخلفية يمكنك ان تحتاج webpack عندما تريد انشاء مشروع من الصفر و لا يوجد سبب في وقتنا هذا يدفعك لذلك غير تعلم التكنولوجيا في حد ذاتها لكنك حتما ستحتاج webpack اذا كنت تطور أشياء يستخدمها المطورين وكمثال على ذلك عندما طورو react وخرج للعلن قامو بانشاء أداة create react app المطورين الذين طورو الأداة كانو بحاجة ماسة ل webpack لذا الأمر يعتمد فقط على احتياجاتك1 نقطة
-
١- ألا يمكن عمل استعلام واحد لاختصار عمليتين او اكثر بقاعدة البيانات ؟ ٢- خاصية اليونيك لا يمكنني معرفة الخطأ بهذه الحالة ؟ إلا من خلال فلترة نوع الخطأ فكيف اعرف ان الخطأ هو من هذا النوع ؟ ثم النقطة الاخيرة عرفت الفكرة ولكن كيف يمكن تطبيقها ؟1 نقطة
-
يمكن تصفية الروابط حسب وجود الصور باختبارها مسبقًا، بفرض أن imagesUrls هي مصفوفة روابط الصور imagesUrls = imagesUrls.filter(url => { var http = new XMLHttpRequest() http.open('HEAD', url, false) http.send() return http.status != 404) }) تصفية جميع الروابط دفعة واحدة قد يستغرق وقتا، لذلك نقوم فقط بتصفية الروابط التي نحتاج عرضها حاليا داخل المكون نفسه1 نقطة
-
لتعلم برمجة تطبيقات الهواتف الذكية يجب عليك تحديد نظام التشغيل الذي ستقوم بإنشاء التطبيقات له (أندرويد أم iOS أم كلاهما معًا)، ولكل من الإختيارات الثلاثة السابقة لها لغات وتقنيات خاصة بها، كالتالي: أندرويد: ستحتاج إلى تعلم لغة مثل Java أو Kotlin لإنشاء تطبيقات أندرويد، وكذلك ستحتاج حساب مطور في متجر جوجل للتطبيقات (إن كنت تريد نشر تطبيقاتك في متجر Play) والذي يكلف 25$ تدفع مرة واحدة. iOS: اللغة الأكثر إستعمالًا لعمل تطبيقات iOS هي Swift ويمكنك أن تستعمل لغة object-c أيضًا، ولرفع تطبيقك على apple store ستحتاج إلى إنشاء حساب مطور بتكلفة 99$ سنويًا. Cross Platform: تطبيقات متعددة المنصات، أي أنه يمكنك أن تقوم بإنشاء تطبيق بلغة معينة وإطار عمل معين ومن ثم إستخدام التطبيق على كلا المنصتين (Android و iOS) وهذا الأمر يقلل تكلفة إنشاء التطبيقات، لأنك سوف تكتب كود واحد فقط، وسوف يعمل على كلا النظامين. تتزايد شعبية Flutter وReact Native حاليًا في إنشاء تطبيقات cross platform كما يمكنك أن تقوم بإنشاء تطبيقات هجينة عبر تقنيات الويب من خلال إستخدام لغات مثل HTML, CSS, Javascript وهي نوع من أنواع cross platform أي أنك تكتب كود واحد ويعمل على أكثر من نظام تشغيل، ويستخدم إطار العمل Cordova كثيرًا في هذا المجال. يمكنك التعرف أكثر حول الفرق بين أنواع التطبيقات من خلال هذا الفيديو: كما تحتوي الأكاديمية على الكثير من المقالات في كل مجال من المجالات السابقة، مثل مقالات حول لغة Java، ولغة kotlin، وبرمجة الأندرويد بشكل عام. أما بالنسبة للأمن السيبراني cyber security فسوف تحتاج إلى تعلم كل أساسيات البرمجة وكيفية إستخدام لغات مثل Python لإنشاء الأداوات المناسبة التي سوف تساعدك في إختبار الإختراق، كما أنه عليك تحديد المجال الذي تريد التخصص فيه (إختبار إختراق المواقع، أو أنظمة التشغيل أم إختبار إختراق شبكات .. إلخ)، بعد ذلك عليك دراسة كيف تعمل الأهداف التي تحاول حمايتها (مواقع، برامج، تطبيقات، ألعاب .. إلخ) حسب المجال الذي حددته. عليك أيضًا تعلم كيفية إستخدام نظام التشغيل Linux حيث أنه النظام الأكثر إستعمالًا في إختبار الإختراق، وأغلب خوادم الويب والشركات الكبيرة في العالم تستخدمه. تحتوي الأكاديمية على بعض الكتب التي قد تساعدك كثيرًا في مرحلة التعلم، مثل كتاب "البرمجة بلغة بايثون" و كتاب "دليل إدارة خواديم أوبنتو" (في حالة أردت أن تتخصص في مجال الويب)، بالإضافة إلى كثير من المواضيع المتقدمة في شكل مقالات في لغة Python.1 نقطة
-
إن لم يكن لديك نظام تسجيل دخول authentication system فالأمر ليس سهلًا لتحقيق هذا الأمر، هنا بعض الطرق التي يمكنك أن تستخدمها: يمكنك أن ترسل Cookie إلى المستخدم تحتوي على معرف خاص وفريد لكل مستخدم، لكن يمكن أن يقوم المستخدم بحذف / تعديل هذه الـ Cookie يمكنك أن تستخدم IP الخاص بالمستخدم، لكن يمكن للمستخدم أن يستعمل VPN أو Proxy أو حتى يقوم بإعادة تشغيل الموجه router لديه (إن كان يستعمل dynamic ip). يمكنك أن تستعمل ما يسمى بـ browser fingerprinting لكن هذا الأمر يمكن تخطيه بمجرد إستعمال متصفح مختلف. ربما تفكر في إستخدام Mac Address خاص بالمستخدم، لكن للآسف لا يمكن للغة PHP أو لغة JavaScript أن الوصول إلى Mac Address الخاص بالمستخدمين، لذلك هذه الطريقة لن تجدي نفعًا. يمكنك أن تستعمل Cookie خاصة بتقنية flash، لكن هذه التقنية لم تعد مدعومة، هذا بالإضافة إلى وجود إحتمال كبير في أن المستخدم ليس لديه برنامج Flash مثبت في الأساس. كما تلاحظ في الأعلى أن كل طريقة لها مشكلة أو طريقة تمكن المستخدم من تخطيها، وهذه المشكلة تواجهة شركات الإعلان الكبيرة مثل Google AdSense و Microsoft advertising .. إلخ، وحاليًا تستخدم الكثير من الشركات طريقة المعرف المركب أي أن يتم جمع معلومات كثيرة جدًا مثل نوع المتصفح وإصداره وكل إمكانيات الجهاز (مساحة الذاكرة العشوائية ومعلومات المعالج و اللغة الإفتراضية للنظام) و User-Agent و الدولة والمدينة وغيرها الكثير من الخصائص، ثم يتم دمج كل هذه الخصائص مع بعضها البعض لعمل معرف خاص بالمستخدم، ويكون إحتمال أن تتابطق كل هذه الخصائص مع جهاز آخر قليلة (مازال هناك إحتمال حدوث هذا الأمر وارد)، هذا بالإضافة لتطبيق الخصائص الأخرى يف القائمة السابقة أيضًا. يمكنك معرفة ما يمكن الحصول عليه من خصائص ومعلومات عن المستخدم من خلال موقع deviceinfo. توجد شركات متخصصة في تحديد وتتبع المستخدمين مثل موقع device atlas لكن هذه المواقع لديها خطط بأسعار عالية نوعًا ما كما أنها لا تضمن 100% من إمكانية تحديد أو تتبع المستخدم. لاحظ أن حتى المواقع الضخمة مثل YouTube و Vimeo تحتسب المشاهدات أكثر من مرة إن قام المستخدم بتشغيل الفيديو من أكثر من متصفح على نفس الجهاز. أما الحل المثال هو عمل نظام لتسجيل دخول authentication system ومن خلاله يمكنك أن تعطي المستخدمين صلاحيات معينة وتمنعهم من خصائص أخرى، ويمكن إستخدام هذا النظام لإحتساب عدد المشاهدات بسهولة وقد تم شرح هذا الأمر في الإجابة السابقة.1 نقطة
-
يمكنك جلب ip الزائر باستخدام الدالة التالية function getClientIP( ) { $ip = ""; if ( isset( $_SERVER['REMOTE_ADDR'] ) ) { $ip = $_SERVER['REMOTE_ADDR']; } else if ( isset( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) { $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; } else if ( isset( $_SERVER['HTTP_CLIENT_IP'] ) ) { $ip = $_SERVER['HTTP_CLIENT_IP']; } return $ip; } بحيث تقوم باستدعاء الدالة getClientIP في الكود الخاص بك , لتتمكن من مقارنة ip كل زائر ومنع تكرار عملية المشاهدة أكثر من مرة . ربما تكون طريقة الاعتماد على ip الزائر هي أفضل وسيلة , حيث يضا يتم الاعتماد على ip الزائر في نظام التصويت و قد أبدت فعالية كبيرة هذه الطريقة.1 نقطة
-
يجب علينا أولاً ذكر الفروقات المهمة لتحديد ذلك ++C تُدير الذاكرة يدوياً بإستخدام المؤشرات بينما في JS لا ، لذلك ++C أسرع وأفضل في إدارة الموارد ++C يجب عليك تحديد نوع المتغيرات Static type بينما في JS لا تحدد نوع المتغيرات لهذا ليست جيدة في إدارة موارد الذاكرة ++C تعتبر لغة Compiled يجب تحويلها قبل تشغيلها بينما JS تعتبر لغة interpreted بحيث يتم قراءة الكود وتحويله وتشغيله في نفس الوقت وهذا يجعلها أبطئ بكثير من لغة ++C ++C تعتبر multi-threaded بحيث تستطيع إستعمال عدة تعليمات أو threads في نفس الوقت بينما JS تعتبر single-threaded بحيث يتم تشغيل الكود أو التعليمات واحد بعد واحد ولا يتم تشغيل الآخر قبل الإنتهاء من السابق ويمكنك تغيير ذلك بالبرمجة المتزامنة لغة C و ++C تعتبر أم اللغات الحديثة ولغة JS من اللغات الناشئة منها فيمكنك تعلم أساسيات البرمجة من JS فقط ولكن كما ترى هناك العديد من المواضيع المهمة في لغة ++C وايضاً بناءً على المجال الذي تريد الدخول فيه تختار اللغة الذي تبداء بها فإذا أردت برمجة البرامجة الثقيلة وبرمجة الأنظمة فعليك البدء ب ++C ومن بعدها يمكنك تعلم أي لغة حديثة أخرى بكل سرعة وسهولة أما إذا أردت الذهاب الى برمجة الويب فقط فيمكنك الذهاب الى JS مباشرةً1 نقطة
-
كل لغات البرمجة متشابهة للغاية، وتشترك في نفس المباديء وطريقة كتابة الكود وتنظيمه، بالإضافة إلى وجود مميزات موجودة في كل اللغات بلا إستثناء مثل الدوال functions والحلقات loops والشروط conditions .. إلخ، هذه وغيرها تجعل عملية تعلم لغة أساسيات البرمجة أو حتى تعلمن لغة برمجة ثانية أمرًا في غالية السهولة (مجرد تعلم طريقة الكتابة في اللغة الجديدة أو ما يعرف بتعمل نحو اللغة syntax). بالطبع توجد بعض الإختلافات بين لغات البرمجة، وإلا لما كان هناك سبب لإختراع لغات برمجة متعددة، لكن هذه الإختلافات لن تؤثر على مسار تعلم الأساسيات على الإطلاق. الأمر الآخر هو أن طريقة كتابة الكود في اللغات الحديثة مثل JavaScript أسهل بكثير من اللغات اللغات العتيقة مثل C++ أو C وهذا الأمر قد يكون مزعج أن بدأت بتعلم لغة برمجة حديثة ثم الإنقال إلى لغة برمجة عتيقة، وستجد أنك تكتب كود أكبر لعمل نفس المهمة التي كانت تتطلب بضعة أسطر في لغات برمجة أخرى مثل Python أو JavaScript، لذلك يفضل البعض أن تكون البداية بتعلم لغة برمجة مثل C++ ثم الإنقال إلى لغة برمجة أخرى مثل Python أو JavaScript، لكن بالرغم من هذا الأمر فلن يشكل إختيارك للغة برمجة تبدأ بها أي إختلافات.1 نقطة