أنماط URL في Django - مجموعات مختلفة
-
21-09-2019 - |
سؤال
أجد صعوبة في فهم ما ينتقل بالضبط إلى patterns
طريقة في Django.
كما ترى ، عادة ما يكون لدي urls.py
مثل:
urlspatterns = patterns('example.views',
(r'/$','func_to_call'),
)
ثم في func_to_call
سأحصل على كل ما أريده من request
كائن باستخدام request.path
. ومع ذلك ، في حالة أخرى ، من المروع حقًا أنني أتجاهل بقع Django لمثل هذه الطريقة الأطول والأقل نظافة للحلية - والسبب في أنني لا أفهم ما يجب القيام به!
لنفترض أن لديك 3 خوادم تضع تطبيق Django الخاص بك ، وكلها لها اسم مجال وبعض الاختلافات مثل server1/djangoApplicationName/queryparams
, server2/application/djangoApplicationName
و server3/queryparams
. ماذا سيفعل urlpattern
يتم تمريرها؟ عنوان URL كله؟ كل شيء بعد اسم المجال؟
المحلول
يرى urlconf regex جزء المسار فقط من عنوان URL ، مع تجريد الملاذ الأولي للأمام. لا تتم مطابقة معلمات الاستعلام من قبل urlconf ، يمكنك الوصول إليها عبر الطلب. الحصول على عرضك. لذلك يمكنك كتابة نمط مثل هذا:
urlpatterns = patterns('myapp.views',
url(r'^myapp/something/$', 'something_view_func')
)
ال توثيق لديه المزيد من الأمثلة والتفاصيل.