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

Salah Eddin Beriani2

الأعضاء
  • المساهمات

    847
  • تاريخ الانضمام

  • تاريخ آخر زيارة

5 متابعين

آخر الزوار

لوحة آخر الزوار معطلة ولن تظهر للأعضاء

إنجازات Salah Eddin Beriani2

عضو نشيط

عضو نشيط (3/3)

435

السمعة بالموقع

77

إجابات الأسئلة

  1. مرحيبا يمكنك البحث أولا على ال doc الذي تريد تحديثه ثم يمكنك تعديله و هناك typeorm يسمى mongoose يمكنه تسهيل العمل عليك await Product.findByIdAndUpdate(6252911686465f30a89dbcbe ,{price:200}) product هو ال model الخاص بالمنتوجات والطريقة findByIdAndUpdate تساعدك في ايجاد doc معين بالاستعانة بال _id الخاص به وتعديله في نفس الوقت
  2. يمكنك جلب الماك عن طريق NODEJS بالاستعانة بالمكتبة getmac npm install -g getmac طريقة الاستخدام مباشرة import getMAC, { isMAC } from 'getmac' // جلب الماك الخاص بالكمبيوتر console.log(getMAC()) // جلب الماك الخاص ب واجهة معينة console.log(getMAC('eth0'))
  3. هناك تكوينات مختلفة لـ webpack 4 و webpack 5 نبدأ بـ webpack 4 إذا كنت تستخدم webpack 5 فانتقل لأسفل إلى قسم webpack 5 أول شيء سنفعله هو تثبيت file-loader npm install --save-dev file-loader ثم تعديل اعدادت webpack لتستخدم file loader { test: /\.(png|svg|jpg|jpeg|gif)$/i, use: [ { loader: "file-loader", options: { name: "[name].[ext]", outputPath: "images", }, }, ], }, اعدادات ملف webpack 5 لقد ألغى Webpack 5 أداة تحميل file-loader إذا كنت تستخدم webpack 5 فيجب إجراء بعض التعديلات على الاعدادات الخاصة بك. module: { rules: [ { test: /\.png$/, type: 'asset/resource' } ] } أيضًا لم تعد بحاجة إلى إضافة file-loader في package.json. عندما تقوم بتعديل اعدادات webpack config الخاص بك يمكنك الوصول إلى ملفات PNG (أو أي ملحقات ملفات قمت بتكوينها) تمامًا كما هو موضح سابقًا.
  4. يمكنك ببساطة معرفة الاستعلامات التي قام بها django في جلسة عن طريق >>> from django.conf import settings >>> settings.DEBUG = True >>> from django.db import connection >>> Model.objects.count() >>> print(len(connection.queries)) 1
  5. كلا التكنولوجيتين fetch و ajax تمكنانك من ارسال طلبات للسيرفر لكن fetch يعد النسخة العصرية لفعل ذلك يتمتع Fetch بالعديد من المزايا مقارنة بـ ajax للعديد من المطورين. أولاً ، واجهة برمجة التطبيقات أبسط. إذا كنت تقارن Fetch بـ XHR القديم البسيط ، فستعرف مدى سهولة الوصول إلى استجابة الطلب. إنها مبنية على promise وهي طريقة رائعة حقًا للعمل فهي تساعد في كتابة كود نظيف وتسمح لك باستخدام أشياء جديدة مثل غير async/await. يحتوي على تعريف دقيق لما هو الطلب وما هو الرد هذا يعني أنه يمكنك كتابة دالة "لتعديل" طلب قبل إرساله. على سبيل المثال ، يمكن أن يكون لديك وظيفة تأخذ كائن طلب init وتعيده مع إضافة بيانات الاعتماد. بشكل افتراضي لا يرسل ملفات تعريف الارتباط يجب التعامل مع المصادقة يدويًا. بشكل عام يبدو أن Fetch يتناسب بشكل أفضل مع طريقة عمل الأشخاص مقارنة بـ XHR.
  6. لا يوجد أمر مدمج ولكن يمكنك القيام بذلك بسهولة عبر > python manage.py shell $ from django.contrib.auth.models import User $ User.objects.get(username="name", is_superuser=True).delete()
  7. حدث النسخة sudo apt update sudo apt upgrade أعد تفعيل واجهة الرسوميات sudo systemctl set-default graphical ثم قم بعمل restart ل gdm sudo systemctl start gdm3 ثم قم باعادة التشغيل
  8. يتم تزويد كل مكون شاشة في تطبيقك بعنصر التوجيه تلقائيًا يحتوي على معلومات متنوعة تتعلق بالمسار الحالي وهذا في react-navigation النسخة 6 من المكتبة يمكنك جلب اسم الشاشة ب function HomeScreen({ route }) { return ( <View> <Text>This is the profile screen of the app</Text> <Text>{route.name}</Text> </View> ); } أو يمكنك استخدام طريقتك لكن في مكون الشاشة وليس في Navigation لأنه ليس داخل navigator import { useRoute } from '@react-navigation/native'; function HomeScreen() { const route = useRoute(); return ( <View> <Text>This is the profile screen of the app</Text> <Text>{route.name}</Text> </View> ); }
  9. تُستخدم خاصية الطفو لتحديد موضع المحتوى وتنسيقه على سبيل المثال دع الصورة تطفو إلى اليسار على النص الموجود في الحاوية. يمكن أن تحتوي الخاصية float على إحدى القيم التالية: left - يطفو العنصر إلى يسار الحاوية الخاصة به right - يطفو العنصر على يمين الحاوية الخاصة به none - لا يطفو العنصر (سيتم عرضه في مكان ظهوره في النص فقط) inherit - يرث العنصر القيمة العائمة للعنصر الأصل في أبسط استخدام لها ، يمكن استخدام خاصية الطفو لالتفاف النص حول الصور. في العموم يجب عليك التجربة بنفسك لتأخذ فكرة أفضل كما يمكنك تجنب استخدام float واستخدام تقنيات عصرية أكثر ك flexbox و grid
  10. موضوع ال authentication جد معقد ويلزم له برمجة فلو فرضنا انك تريد تسجيل الدخول للمستخدمين لموقعك فقبل ذلك يجب أولا تسجيلهم كمستخدمين ضمن قاعدة بيانات الموقع وهذا يضمن تسجيل معلوماتهم وتشفير كلمة السر الخاصة بهم وحفضها في قاعدة البيانات من ثم يمكنك التفكير في كيفية تسجيل الدخول وهذا أيضا يتطلب جلب المستخدم من قاعدة البيانات من ثم اعادة فك تشفير كلمة السر من قاعدة البيانات لمقارنتها مع كلمة السر التي ادخلها المستخدم لتسجيل الدخول اذا تطابقت يبقى أن تفتح له session او تولد له توكن كي يبقى مجسلا للدخول لفترة يحددها المبرمج فاذا كنت مبرمج وتجيد لغة ما ابحث عن كيفية بناء authentication فستجد حتما المصادر أما اذا كنت مالك للموقع ولا تجيد البرمجة فلابد من توظيف مستقل يجيد البرمجة ليتكفل هو ببناءه لك
  11. يمكن استخدام make_random_password بهذه الطريقة مثلا for user in users_list: password = User.objects.make_random_password() user.set_password(password) user.save(update_fields=['password']) بهذه الطريقة يمكنك أن تعين لكل مستخدم كلمة سر عشوائية
  12. يمكن تحديد مسار مجلد التحميل الافتراضي والحجم الأقصى للملفات التي تم تحميلها في إعدادات التكوين لكائن Flask. حدد المسار إلى مجلد التحميل app.config['UPLOAD_FOLDER'] يحدد الحجم الأقصى (بالبايت) للملفات المراد تحميلها app.config['MAX_CONTENT_PATH'] تحتوي الشفرة التالية على قاعدة عنوان URL "/ upload" التي تعرض’upload.html "في مجلد النماذج وقاعدة عنوان URL" / upload - file "لاستدعاء وظيفة upload لمعالجة عملية التحميل. يحتوي "upload.html" على زر اختيار ملف وزر إرسال. <html> <body> <form action = "http://localhost:5000/uploader" method = "POST" enctype = "multipart/form-data"> <input type = "file" name = "file" /> <input type = "submit"/> </form> </body> </html> بمجرد تحديد ملف ، انقر فوق إرسال. تستدعي طريقة نشر النموذج عنوان URL "/ upload_file". ينفذ برنامج تحميل الوظيفة uploader عملية حفظ. كود Python لتطبيق Flask. from flask import Flask, render_template, request from werkzeug import secure_filename app = Flask(__name__) @app.route('/upload') def upload_file(): return render_template('upload.html') @app.route('/uploader', methods = ['GET', 'POST']) def upload_file(): if request.method == 'POST': f = request.files['file'] f.save(secure_filename(f.filename)) return 'file uploaded successfully' if __name__ == '__main__': app.run(debug = True)
  13. يمكنك استخدام ال query لهذه العملية @app.route("/") def hello(): return request.args.get("page") app.run(host="0.0.0.0", port=8080) مع تغيير في ال url http://localhost:8080?page=1 http://localhost:8080?page=2 http://localhost:8080?page=3 http://localhost:8080?page=4
  14. هدفنا هو استخدام عنوان URL مثل هذا /v1/magazines?page=1&per-page=50 لإنشاء نتائج JSON مثل هذا: { "results": [ { "Programming Today", "publisher": "Harper Collins" }, { "title": "Mountain Biking", "publisher": "Outdoors Limited" } ], "pagination": { "count": 2, "page": 1, "per_page": 50, "pages": 1 } } @app.route("/magazines") def magazines(): # process query parameters page = request.args.get("page", 1, type=int) per_page = request.args.get("per-page", 100, type=int) # query magazines = Magazine.query.paginate(page, per_page) # combine results with pagination results = { "results": [{"title": m.title, "publisher": m.publisher} for m in magazines.items], "pagination": { "count": magazines.total, "page": page, "per_page": per_page, "pages": magazines.pages, }, } return jsonify(results) هذا هو! تمنحنا طريقة ترقيم الصفحات في استعلام sqlalchemy الكثير من المرونة مع القليل جدًا من التعليمات البرمجية وإرجاع مجموعة نتائج محدودة وعرض إجمالي السجلات المتاحة أثناء حساب الصفحات المتبقية بناءً على إعدادنا لكل صفحة.
  15. السبب هو الباب 81 هو باب مخصص في linux جرب تغييره الى 3000 أو 5000 app.run(host="127.0.0.1", port=3000, debug=True)
×
×
  • أضف...