إبراج معلمات الاستعلام التي سيتم مطابقتها في URL.py

StackOverflow https://stackoverflow.com/questions/955073

  •  11-09-2019
  •  | 
  •  

سؤال

أريد أن يتم تمرير عنوان URL بالكامل بعد الشريحة إلى برنامج نصي. إذا فعلت :

url(r'^(?P<id>.*)$', alias.get, name="alias"),

ثم أحصل فقط على مكون المسار وليس معلمات الاستعلام التي تم تمريرها إلى وظيفتي. ثم يجب علي:

Def Urlencode (DICT): إذا كان Len (DICT) == 0: إرجاع "" Params = {} for k، v في dict.items (): params [k] = v.Encode ("utf-8") ؟ + Urllib.urlencode (Params) Ref Get (ID): ID + = Urlencode (طلب)

أقوم بذلك من أجل الكثير من آرائي وأظل نسيانها وخلق الأخطاء. هل هناك أي طريقة لإخبار Urls.py مطابقة كل شيء بما في ذلك سلسلة الاستعلام؟

هل كانت مفيدة؟

المحلول

لا، لا توجد طريقة للقيام بذلك. لا يتم تمرير المعلمات Get إلى URL.py.

أتساءل لماذا تحتاج إلى القيام بذلك على الرغم من ذلك. لماذا تعتمد الكثير من وجهات نظرك على الحصول على الاستعلام؟ لماذا لا تستخدم طريقة Django لفعل الأشياء، والتي تتمثل في جعل المعلمات جزءا من عنوان URL نفسه، بدلا من الاستعلام.

نصائح أخرى

داخل وجهة نظرك، يمكنك الحصول على عنوان URL بما في ذلك سلسلة الاستعلام مع request.get_full_path().

هناك ايضا request.build_absolute_uri() إذا كنت تريد تضمين http://servername.com. جزء.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top