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

السؤال

نشر

لدي مشروع جانغو Django وأريد أن أقوم برفعه على مستودع عام في github ليصبح مشروع مفتوح المصدر. وأريد أن يكون التثبيت سهلاً قدر الإمكان (عندما أنقل المشروع إلى أحد الخوادم أو يقوم شخض آخر بتجربة المشروع)، لذلك أقوم بتضمين المشروع بالكامل ، وليس فقط التطبيقات الموجودة ضمن المشروع. هذا يعني أنه سيتم تضمين ملف settings.py أيضًا.

ولكن بهذه الطريقة ستكون قيمة settings.SECRET_KEY هي نفسها في كل مرة يتم فيها تثبيت المشروع، هل توجد طريقة لجعل هذه القيمة تصبح عشوائية في كل مشرة يتم تثبيت المشروع فيها؟

Recommended Posts

  • 1
نشر

بداية من الإصدار 1.10 في جانغو Django ، أصبح بإمكنك إستعمال الدالة get_random_secret_key كذلك التي توفر لك توليد SECRET_KEY في كل مرة تستدعيها، ويمكنك إستعمالها بالشكل التالي:

from django.core.management.utils import get_random_secret_key

SECRET_KEY = get_random_secret_key()	# '+eyek9npq1xv1b5xt!dbx01pr72kf5ebq@f^@)8@$r@99(&e62'

يمكنك الإطلاع على الكود الخاص بهذه الدالة في كود جانغو Django نفسه في مستودع المشروع.

ملاحظة: هذه الطريقة تقوم بتوليد مفتاح جديد في كل مرة تشغل فيها المشروع، وحتى وإن قمت بتشغيل أكثر من نسخة من نفس المشروع فسيعمل كلُ منها بمفتاح مختلف عن الآخر، وعليك أن تُشير في المشروع الخاص بك عن كيفية تغير قيمة SECRET_KEY ليتمكن المستخدمون بعد ذلك من تعديل المشروع وإستعماله بشكل سليم.

  • 1
نشر (معدل)

عند رفع المشروع على github قم مسح قيمة SECRET_KEY وقم بكتابة 

SECRET_KEY = 'secret key'

وهذا الموضوع لا يقتصر على هذا الحقل فقط على سبيل المثال عند رفع مشروع يحتوي على إعدادات جديدة تحتاج لبيانات مختلفة لكل مشروع قم بالإشارة لها في دليل استخدام المشورع
في ملف README.md وهو عبارة عن ملف الذي يظهر عند فتح أي مشروع جديد على github أو عند تنزيل المشروع على الجهاز حيث سيقوم مستخدم المشروع الخاص بك بوضع SECRET_KEY الخاص به
مثلا في مشروع قمت بإعداد خدمة إرسال بريد إلكتروني.
عند رفع على github سأقوم بمسح البيانات الحساسة مثلاً:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = 'enter your email' 
EMAIL_HOST_PASSWORD = 'your password'

وستوضح في شرح المشروع أنه عليك تغير أو إضافة بعض إعدادات الخاصة بك قبل تشغيل المشروع. 

تم التعديل في بواسطة محمد حجي2

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...