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 بتاريخ 2 ساعات قال سامح أشرف: في الماضي كان جانغو 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 بتاريخ 3 ساعات قال Haitham Owda2: Django version 3.2.9, using settings 'project.settings' وجهتني مشكلة اخرة هل يمكنك أن توضح المشكلة أكثر؟ اقتباس
0 Haitham Owda2 نشر 14 نوفمبر 2021 الكاتب أرسل تقرير نشر 14 نوفمبر 2021 بتاريخ 7 ساعات قال سامح أشرف: هل يمكنك أن توضح المشكلة أكثر؟ 1 اقتباس
0 سامح أشرف نشر 14 نوفمبر 2021 أرسل تقرير نشر 14 نوفمبر 2021 بتاريخ 19 دقائق مضت قال 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 بتاريخ 2 ساعات قال سامح أشرف: عليك تعديل الملف 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
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.