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

كيفية الحصول على المدخلات parameters من request.GET في جانغو Django؟

Amer Abdallah

السؤال

أقوم حاليًا بتعريف regular expressions من أجل التقاط المدخلات parameters في عنوان URL. كيف يمكنني الوصول إلى المدخلات parameters من عنوان URL كجزء من كائن HttpRequest؟

يقوم HttpRequest.GET حاليًا  بإرجاع كائن QueryDict فارغ.

أود أن أتعلم كيفية القيام بذلك بدون مكتبة، حتى أتمكن من التعرف على جانغو Django بشكل أفضل.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

يمكنك الحصول على أي Query Parameter من خلال التابع get كالتالي:

// URL: localhost:8000/posts?id=123
request.GET.get('id', '1')	# Output: 123

يتم تمرير اسم الـ Parameter إلى التابع get والقيمة الثانية هي القيمة الإفتراضية التي سوف يتم إستخدامها في حالة لم يتم إيجاد اي parameter باسم id.

على العموم إن كنت تريد إستخدام regex، فيمكنك أن تستخدم re_path كالتالي:

from django.urls import path, re_path

from . import views

urlpatterns = [
    path('posts/2003/', views.special_case_2003),
    re_path(r'^posts/(?P<year>[0-9]{4})/$', views.year_archive),
]

وعليك أن تقوم بتجهيز views.py كالتالي:

def post_page(request, year):
    # Rest of the method

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

يمكنك استخدام POST كالتالي:

request.POST["id"] # فقط نمرر له الوسيط الذي نريده

أو من خلال GET:

# في حالة كان المفتاح إلزامي
request.GET["id"]

وهنا سيرد قيمة المفتاح، وإذا لم يجد قيمة له سيرمي استثناء. أما في حالة كان المفتاح اختيارياً:

# في حالة كان المفتاح اختياري
request.GET.get('id')

وفي الحالات التي يكون لديك فيها كائن request فقط يمكنك استخدام:

request.parser_context['kwargs']['your_param']

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...