Haitham Owda2 نشر 14 نوفمبر 2021 أرسل تقرير نشر 14 نوفمبر 2021 (معدل) BASE_DIR = Path(__file__).resolve().parent.parent ما الفرق بينهم Django BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) تم التعديل في 14 نوفمبر 2021 بواسطة سامح أشرف تنسيق الشيفرة - توضيح العنوان 2 اقتباس
3 سامح أشرف نشر 14 نوفمبر 2021 أرسل تقرير نشر 14 نوفمبر 2021 في الماضي كان جانغو Django يقوم بتخزين BASE_DIR في شكل نص عادي String لذلك كان يمكنك أن تقوم بإستخدام الكود التالي: import os BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) وكان يمكنك أن تقوم بعمل المسارات من خلال الكود التالي: os.path.join(BASE_DIR, ...) لكن بداية من الإصدار 3.1 أصبح جانغو يحتاج إلى أن يكون المتغير BASE_DIR عبارة عن كائن Path لذلك يجب أن تستخدم الكود التالي: from pathlib import Path BASE_DIR = Path(__file__).resolve(strict=True).parent.parent وأصبح يمكنك إنشاء المسارات من خلال الكود التالي: BASE_DIR / 'subdir' وبالتالي يكون عمل المسارت أمرًا أسهل بكثير من خلال الكود السابق. ملاحظة: لن تجد هذا التغير إن قمت بترقية مشروعك إلى الإصدار 3.1 ولكن إن قمت بإنشاء مشروع جديد ستجد أن هذا التغير موجود في الملف settings.py 1 اقتباس
1 Hassan Hedr نشر 14 نوفمبر 2021 أرسل تقرير نشر 14 نوفمبر 2021 كلا السطرين يقوم بجلب مسار المجلد الحاوي على المجلد الأب (أي مستويين إلى الأعلى) الفرق أن ()resolve ستقوم بمعالجة أي مسارات نسبية في المسار الممرر لها، وأيضا تقوم بمعالجة أي ذكر لوصلات رمزية Symbolic Links، لكن في حالتك هذه أنت تمرر المتغير __file__ وبالتالي أنت لا تستفيد من هذه المزايا، بالتالي الحالتين متماثلتين لديك # بفرض الملف الحالي # /path/to/current/file.py BASE_DIR = Path(__file__).resolve().parent.parent # /path/to BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # /path/to 2 اقتباس
0 Haitham Owda2 نشر 14 نوفمبر 2021 الكاتب أرسل تقرير نشر 14 نوفمبر 2021 بتاريخ On 14/11/2021 at 03:34 قال سامح أشرف: في الماضي كان جانغو Django يقوم بتخزين BASE_DIR في شكل نص عادي String لذلك كان يمكنك أن تقوم بإستخدام الكود التالي: import os BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) وكان يمكنك أن تقوم بعمل المسارات من خلال الكود التالي: os.path.join(BASE_DIR, ...) لكن بداية من الإصدار 3.1 أصبح جانغو يحتاج إلى أن يكون المتغير BASE_DIR عبارة عن كائن Path لذلك يجب أن تستخدم الكود التالي: from pathlib import Path BASE_DIR = Path(__file__).resolve(strict=True).parent.parent وأصبح يمكنك إنشاء المسارات من خلال الكود التالي: BASE_DIR / 'subdir' وبالتالي يكون عمل المسارت أمرًا أسهل بكثير من خلال الكود السابق. ملاحظة: لن تجد هذا التغير إن قمت بترقية مشروعك إلى الإصدار 3.1 ولكن إن قمت بإنشاء مشروع جديد ستجد أن هذا التغير موجود في الملف settings.py أظهر المزيد Django version 3.2.9, using settings 'project.settings' وجهتني مشكلة اخرة 1 اقتباس
0 سامح أشرف نشر 14 نوفمبر 2021 أرسل تقرير نشر 14 نوفمبر 2021 بتاريخ On 14/11/2021 at 05:58 قال Haitham Owda2: Django version 3.2.9, using settings 'project.settings' وجهتني مشكلة اخرة أظهر المزيد هل يمكنك أن توضح المشكلة أكثر؟ اقتباس
0 Haitham Owda2 نشر 14 نوفمبر 2021 الكاتب أرسل تقرير نشر 14 نوفمبر 2021 بتاريخ On 14/11/2021 at 09:09 قال سامح أشرف: هل يمكنك أن توضح المشكلة أكثر؟ أظهر المزيد 1 اقتباس
0 سامح أشرف نشر 14 نوفمبر 2021 أرسل تقرير نشر 14 نوفمبر 2021 بتاريخ On 14/11/2021 at 16:49 قال Haitham Owda2: أظهر المزيد عليك تعديل الملف url.py ليحتوي على مسار فارغ، كالتالي: urlpatterns = [ path('admin/', admin.site.urls), path('', include('polls.urls')) # عليك أن تقوم بتغير polls.urls إلى مسار الصفحة الرئيسية ] أو إستخدام ملفات العرض views -إن كان لديك واحد-: urlpatterns = [ path('admin/', admin.site.urls), path('', main_views.homepage), # عليك أن تقوم بتغير main_views.homepage إلى مسار الصفحة الرئيسية ] 2 اقتباس
-1 Haitham Owda2 نشر 14 نوفمبر 2021 الكاتب أرسل تقرير نشر 14 نوفمبر 2021 بتاريخ On 14/11/2021 at 17:06 قال سامح أشرف: عليك تعديل الملف url.py ليحتوي على مسار فارغ، كالتالي: urlpatterns = [ path('admin/', admin.site.urls), path('', include('polls.urls')) # عليك أن تقوم بتغير polls.urls إلى مسار الصفحة الرئيسية ] أو إستخدام ملفات العرض views -إن كان لديك واحد-: urlpatterns = [ path('admin/', admin.site.urls), path('', main_views.homepage), # عليك أن تقوم بتغير main_views.homepage إلى مسار الصفحة الرئيسية ] أظهر المزيد اقتباس
السؤال
Haitham Owda2
ما الفرق بينهم Django
تنسيق الشيفرة - توضيح العنوان
7 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.