لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 02/03/22 في كل الموقع
-
السلام عليكم، اريد ان اعرف الفرق بين module.export و export ؟ عندما نستخدم weback نقوم بعمل module.export فما الفرق بينهم ؟ وشكرا2 نقاط
-
السلام عليكم.. احاول عمل تسجيل الدخول و اريد ان اضيف للمستخدم token عند تسجيله الدخول لكي استخدمه فيما بعد .. سؤالي هو اين استطيع ان اضع هذا token تحديدا بعد انشائه ؟ هل اضعه في local storage ام انها تعد مخاطرة ؟ ام انني اقوم بانشاء template engine وعن طريقه استطيع ان امرر ال token ؟ ام عن طريق طلبية ajax ؟ بحثت كثيررا ولم اجد افضل طريقة لحفظ token .2 نقاط
-
1 نقطة
-
تم رفض تحديث التطبيق ولم أفهم ما هي المشكلة وصلتني الرسالة التالية: Issue with your app Your app contains content that doesn't comply with the User Generated Content policy. About the User Generated Content (UGC) policy Apps that contain or feature UGC must:Implement robust, effective and ongoing UGC moderation, as is reasonable and consistent with the type(s) of UGC hosted by the app; In the case of live-streaming apps, objectionable UGC must be removed as close to real-time as reasonably possible; In the case of augmented reality (AR) apps, UGC moderation (including the in-app reporting system) must account for both objectionable AR UGC (e.g. a sexually explicit AR image) and sensitive AR anchoring location (e.g. AR content anchored to a restricted area, such as a military base, or a private property where AR anchoring may cause issues for the property owner); Provide a user-friendly, in-app system for reporting objectionable UGC and take action against that UGC where appropriate; Remove or block abusive users who violate the app's terms of use and/or user policy. وأيضا كان في هذه الصورة مرفقة مع الرسالة1 نقطة
-
الاستعلام export وحده في جافاسكربت يستعمل لتصدير روابط للوظائف والدوال أو الكائنات من ملفات تدعى بالوحدات النمطية modules. فجافاسكربت الحديثة لم تعد تضطرك الى كتابة كامل الشيفراتت البرمجية من دوال وكائنات في ملف واحد، بل أصبح يمكنك إنشاء ملفات خاصة بكل دالة وبكل كائن وتصديرها لإستعمالها في ملفات أو سياقات أخرى. هناك نوعان من التصديرات عن طريق export: التصديرات المسماة export function functionName(){...} التصديرات الافتراضية export default expression; أما بخصوص module.export فهي طريقة تخص NodeJs للتصدير، ومثلما واضح أنها تقوم بالوصول الى التابع export للكائن module. الكائن module في NodeJS هو عبارة عن كائن JavaScript عادي يمثل الوحدة النمطية الحالية (التي يتم كتابة الشيفرة فيها). و module هنا هو بشكل بسيط تابع لهذا الكائن يقوم بنفس وظيفة التصدير بمميزات أكثر من حيث أن كل ما ستقوم بتعيينه لـ module.exports سيتم عرضه كوحدة نمطية مستقلة. بشكل بسيط يختلفان من حيث: export تخص جافاسكربت في حين أن module.exports تخص NodeJs. يمكن لـ export ان تقوم بتصدير العديد من الدوال والمتغيرات على عكس module.exports التي تقوم بتصدير أي ما يسند اليها كوحدة نمطية واحدة. وبمعنى آخر لا يمكن أن يحوي ملف جافاسكربت واحد العديد من module.exports في NodeJs في حين أنه يمكن ان يحوي ملف جافاسكربت واحد على العديد من تصديرات export في جافاسكربت. من ناحية الاستعمال: تستعمل module.exports لتصدير كائنات ملفات الاعداد وملفات الخدمات مثل ملفات اعداد ويب باك webpack.config.js و axios.config.js و غيرها. أين يجب أن تحوي خدمة أو كائنا أو وظيفة واحدة مستقلة. تعتبر هنا module.exports طريقة جيدة وشائعة لتصديرها. تستعمل export لتصدير متغيرات، دوال من ملفات. مثل تصدير دالة للترجمة ودالة لتغيير اللغة وكائن الترجمات من ملف لغات language.js مثلا. يتوفر في NodeJs مكافئ لـ export أيضا، هو exports.1 نقطة
-
بشكل عام، تتباين طرق تخزين رموز المصادقة بين: التخزين المحلي LocalStorage، تخزين الجلسة SessionStorage أو التخزين عن طريق ملف تعريف الارتباط Cookies. يتم عادة وضع رموز التوثيق في تخزين الويب Web Storage للمتصفحات، والذي يعمل بشكل ممتاز في أغلب حالات الاستعمال. وبشكله المجمل. ويحوي هو ذاته طريقتين تشتركان في حيث أنهما يستعملان مساحة تخزين المتصفح: التخزين المحلي localStorage: حيث أن البيانات تبقى مخزنة حتى يتم حذفها اما يدويا أو عن طريق جافاسكربت التطبيق. تخزين الجلسة sessionStorage: أين يتم حفظ التغييرات التي تم إجراؤها وإتاحتها للصفحة الحالية فقط، وبمجرد إغلاق النافذة، يتم حذف التخزين. من بين عيوب هاته الطريقة: على عكس ملفات تعريف الارتباط، يتم تضييق نطاق الوصول للبيانات المخزنة محليا في نطاق معين ولا يمكن الوصول إلى هاته البيانات من قبل أي نطاق آخر بما في ذلك النطاقات الفرعية، ولذلك فإن تخزين الويب ليس خيارا جيدا ان كنت تستعمل نطاقات فرعية. يمكن الوصول إلى مساحة تخزين الويب من خلال JavaScript في نفس المجال، لذا فإن أي سكربت JavaScript يعمل على موقعك سيكون له حق الوصول إلى مساحة تخزين الويب، قد يسبب هذا هجمات البرمجة النصية عبر المواقع (XSS أو Cross Site Scripting). الطريقة الأخرى للتخزين هي في استخدام ملفات تعريف الارتباط. وتتميز بأن لها عمر يمكن التحكم فيه عن طريق التالي: يمكن تدمير ملفات تعريف الارتباط بعد إغلاق المتصفح (ملفات تعريف ارتباط الجلسة session cookies). كما يمكن أن تكون ملفات تعريف الارتباط دائمة (لا يتم إتلافها بعد إغلاق المتصفح) مع انتهاء الصلاحية. يمكن قراءة ملفات تعريف الارتباط بواسطة كل من JavaScript وجانب الخادم (في حالة Node مثلا). من بين عيوب هاته الطريقة: لملفات تعريف الارتباط حجم أقصى لا يمكن تجاوز (4 كب)، ولذلك فإن هاته الطريقة قد تسبب بعض المشاكل أحيانا. يمكن أن تكون ملفات تعريف الارتباط عرضة لهجمات طلب التزوير عبر المواقع (CSRF أو XSRF). إذا كنت تستخدم ملفات تعريف الارتباط، سيقوم المتصفح تلقائيًا بإرسال معلومات المصادقة مع كل طلب إلى الخادم. أما إذا كنت تستخدم تخزين ويب فيجب عليك كتابة الأمر الذي يدير بالضبط معلومات المصادقة التي يتم إرسالها إليه. كأن ترسلها في الـHeaders أو كمعامل في طلبات GET أو POST. في الأخير، يجب معرفة أن ما يجب الاهتمام به بأكبر قدر هو كيفية تخزين رمز التوثيق على الخادم وكيفية التعامل مع الطلبات التي يستقبلها الخادم من العميل لأن الخادم هو ما يتحكم في كيفية تسيير هذا الأمر، وان قام الخادم بتغطية كامل هاته الاعتبارات فلن تختلف الطريقة والأخرى كثيرا. على أن الشائع والمفضل لدى أغلب المطورين التخزين المحلي في تخزين الويب localStorage لما له من أفضلية من ناحية سهولة التعامل معه. اقرأ أيضا: التخزين المحلي (Local Storage) في HTML5 ملفات تعريف الارتباط وضبطها في جافاسكربت1 نقطة
-
يوجد خطأ لديك في الصورة الأولى حيث أن مسار الخط Mochiy Pop One غير صحيح لديك، فالمسار الصحيح هو: https://fonts.googleapis.com/css2?family=Mochiy+Pop+One&display=swap وبالتالي يمكنك أن تستخدم عنصر link التالي: <link href="https://fonts.googleapis.com/css2?family=Mochiy+Pop+One&display=swap.css" rel="stylesheet" integrity="sha384-aEek45YJgjlg2AeK2J3peZfIlD3JFyAmgM4pn3MQHzFLALgsNgtHGmX79j2/gArV" crossorigin="anonymous"> قمت بتجربة هذا العنصر في برنامج VS Code وقد تعرف عليه بدون مشكلة وقد عمل الخط أيضًا بدون مشكلة، وكما أشرت سابقًا أن هذا الخط الذي يظهره VS Code ليس خطأ بل تحذير ويمكنك تجاهله بكل بساطة.1 نقطة
-
1 نقطة
-
1 نقطة
-
يقترح عليك موظفي المراجعة بإتاحة إضافة "إبلاغ عن إساءة" للتعليقات في التطبيق بحيث يمكن للمتابعين تنبيه الأدمن و المسؤولين عن حدوث اختراقات للخصوصية أو كتابة تعليقات ليست مناسبة. هذا واضح في الجزء: Provide a user-friendly, in-app system for reporting objectionable UGC and take action against that UGC where appropriate; كما عليك حظر و إيقاف المستخدمين و إخفاء تعليقاتهم للذين يتجاوزون القواعد في تطبيقك.1 نقطة
-
نعم يُمكنك ذلك فقط يجب أن يكون كلاً من التطبيقين موجوداً في INSTALLED_APPS في ملف الإعدادات settings.py. #داخل ملف #settings.py INSTALLED_APPS = [ ... 'blog', 'profiles', ... ] بعدها يُمكنك إستخدام النموذج Post داخل التطبيق profiles # في الملف profiles/models.py from blog.models import Post #قم باستدعاء النموذج من التطبيق #blog class PostProperty(models.Model): post = models.ForeignKey(Post) كما يُمكنك إستخدامه على الشكل التالي: class PostProperty(models.Model): post = models.ForeignKey("blog.Post") #من دون أن تقوم باستدعاء النموذج1 نقطة
-
استخدم الدالة abort من المكتبة flask_restful ليس من مكتبة flask ﻷن الأولى تقبل إضافة قِيم أخرى في كود ال JSON، والثانية لا تقبل: from flask import Flask from flask_restful import Resource, Api, abort #قم باستدعاء الدالة #abort # من المكتبة # flask_restful app = Flask(__name__) api = Api(app) class HelloWorld(Resource): def get(self): # قم باستخدام الدالة # وأضف القيم الجديدة إليها # على سبيل المثال قمنا هنا بإضافة # route= api.url_for(self) abort(500, message="Error: Can't find the file you looking for.", route=api.url_for(self)) return {'hello': 'world'} api.add_resource(HelloWorld, '/api/v1/get-log') if __name__ == "__main__": app.run(debug=True)1 نقطة
-
لقراءة ملف الCSV قبل حِفظه قُم بتحويله إلى دفق نص (Text stream) باستخدام io.TextIOWrapper: import io from flask import Flask, jsonify, request @app.route('/upload/', methods=['POST']) def csv_upload(): filebuf = request.files.get('csvfile')#جلب الملف من الطلب if filebuf is None:# التأكد من أن الملف موجود وإلا نقوم بارجاع خطأ للعميل return jsonify(message='Please specify the file'), 400 elif 'text/csv' != filebuf.mimetype: #التأكد من أن نوع الملف المُحَمّل هو CSV return jsonify(message='Only CSV files will be accepted'), 415 text_stream = io.TextIOWrapper(filebuf.stream, encoding='utf8')# نقوم بتحويل الملف الى دفق نص for row in csv.reader(text_stream):#نقرأ محتوى الملف #ضع شيفرة القراءة هنا return jsonify(message=f'{filebuf.filename!r}Loaded'), 200#إرجاع جواب للعميل بأن الملف حُمّل بنجاح1 نقطة
-
السلام عليكم.. ما الفرق بين html , handelbars ؟ اعلم ان hbs غالبا ما يستخدم في ال server side لكن لماذا اقوم باستخدامه بينما املك ملف html و عن طريقه استطيع التخاطب مع السيرفر باستخدام (ajax) ؟.. قرات للتو ان كثرة ارسال طلبات ajax من الممكن تبطئ الموقع هل هذا هو السبب الرئيسي الذي يجعلني استخدم hbs في ال server side ؟ . شكرا1 نقطة
-
الTemplate engines مثل handlebars عادةً ما يتم إستخدامها لسهولتها في الصفحات البسيطة التي لا يكون فيها تلاعب كبير بDOM وهذا لأن طريقة كتابتها والتعامل معها تكون أسهل من التعامل مع أكواد الجافاسكريبت والAjax , وخاصة عندما يكون الذي يتعامل هنا مُصمم وليس مُبرمج فيكون من الأسهل للمُصممين التعامل مع الوسوم الخاصة بhandlebars أو الTemplate engines بوجهٍ عام بدلًا من التعامل مع أكواد الجافاسكريبت ما الذي يجعلك تستخدم hbs عندما يكون في الفريق بعض الأشخاص الذي ليس لديهم معرفة كبيرة في التعامل مع جافاسكريبت تُريد فقط إنشاء بعض الصفحات البسيطة التي لا تحتاج إلى تلاعب كبير في DOM لا تريد إستخدام أطر عمل مثل React, angular ما الذي يجعلك لا تستخدمها عندما يكون التطبيق لديك يحتوي على تلاعب كثير بDOM عندما يكون هنالك تفاعل كبير بين المستخدم والموقع مما يجعلك تحتاج إلى كتابة javascript بشكلٍ كبير عندما تريد إستخدام أطر عمل مثل React.js, angular.js, vue.js1 نقطة
-
للحصول على مُعرف الحقل إستخدم {{ field.auto_id }} أو: {{ field.id_for_label }}1 نقطة
-
إذا أردت عرض النموذجين كنموذج واحد في القالب لا يجب عليك دمجُهُما بس استعملهما داخل عنصر <form> واحد. مثال ذلك: <form action="/your-url/" method="post"> {% csrf_token %} {{ profileForm }} {{ userEditForm }} <input type="submit" value="Submit"> </form> ثم فقط قُم بمعالجة النماذج بشكل منفصل في العرض (View): def your_view(request): # في حالة # GET # نقوم بإنشاء كائن جديد من كل نموذج وإرساله إلى القالب للعرض if request.method == "GET": profileForm = ProfileForm() userEditForm = UserEditForm() # أما في حالة # POST # elif request.method == 'POST': # نقوم بإنشاء النموذجين وملئهما بالبيانات المُرسلة من القالب profileForm = ProfileForm(request.POST) userEditForm = UserEditForm(request.POST) # بعدها نتحقق في ماإذا كانت البيانات صالحة في النموذجين وليس بها أخطاء if profileForm.is_valid() and userEditForm.is_valid(): # إذا كانت البيانات صالحة نقوم بحفظها وإرسال العميل إلى صفحة أخرى profileForm.save() userEditForm.save() return HttpResponseRedirect('/thanks/') return render(request, 'template.html', {'profileForm': profileForm, 'userEditForm':userEditForm})1 نقطة
-
يمكن عمل اختبار لاي وظيفة في برنامجك, لنفترض ان لديك العملية التالية: # functions.py def present_me(name): return f'Hello {name}' بحيث بادخال العامل name لكي ترجع لك الجملة hello زائد الاسم المدخول. اذن يمكننا اختبار ان كانت النتيجة تجري كما هو متوقع لانشاء إختبار كما يلي: import unittest from functions import hello class TestHelloFunction(unittest.TestCase): def test_case_one(self): self.assertEqual(hello('Samir'), 'Hello Samir') def test_case_two(self): self.assertNotEqual(hello('Samir'), 'samir') def test_integer(self): self.assertEqual(hello(5), 'Hello 5') if __name__ == '__main__': unittest.main() لقد قارنا ببساطة ان كانت نتيجة الوظيفة ترجع النتيجة المتوقعة، بحيث: -self.assertEqual تعني اننا نقارن ان النتيجة يجدر عليها ان تكون متماثلة. -self.assertNotEqual اننا نقارن النتيجة ان لا تكون مماثلة. المزيد من المعلومات يمكن التوصل اليها من هنا: unittest — Unit testing framework — Python 3.10.2 documentation1 نقطة
-
سلام عليكم عملت مستخدم جديد وكان كل شي تمام وبعد يومين ادخل حسابي رئيسي اجد كل شي اتغيير ورجع كانو حساب جديد وكل ملفات وكل شي في سطح مكتب اختفى ممكن حل للمشكلة1 نقطة