كيفية إعادة التوجيه إلى صفحة أخرى في جانغو

0

 سنتعلم في هذا الدرس كيفية إعادة توجيه المستخدم من صفحة إلى أخرى.


إعادة التوجيه باستخدام المسار المضمن في Django

# views.py
from django.shortcuts import HttpResponse
from django.shortcuts import redirect, reverse
def redirect_view1(request):
    q = request.GET.get('q')
      if q is not None:
          # Redirect the user
            return redirect('/url/') # /url/ is your URL path
        else:
          return HttpResponse("<h1>Page 1</h1>")


إعادة التوجيه باستخدام عناوين URL المسماة في Django

إنها عملية مكونة من خطوتين - تسمية عنوان URL واستخدام عنوان URL هذا في عملية إعادة التوجيه (). لتحويل اسم URL هذا إلى مسار URL، نحتاج إلى استيراد وظيفة عكسية من django.shortcuts وتمرير اسم URL هذا كمعلمة.

# urls.py
from django.urls import path
from . import views
 
app_name = "practice"
urlpatterns = [ path('url1/', views.redirect_view1), path('url5/', views.redirect_view2, name="page2") ]
 
#views.py
from django.shortcuts import HttpResponse
from django.shortcuts import redirect, reverse
 
def redirect_view1(request):
  q = request.GET.get('q')
    if q is not None: # Redirect the user
      return redirect(reverse('page2')) # page2 is the name of the URL # If you are using namespace URLs then you can write reverse('namespace_name:page2')
    else:
      return HttpResponse("<h1>Page 1</h1>")

إعادة التوجيه المؤقتة في جانغو

يشير رمز الحالة 302 الذي تم العثور عليه إلى عملية إعادة توجيه مؤقتة.

from django.shortcuts import HttpResponse
from django.shortcuts import redirect, reverse
 
def redirect_view1(request):
  q = request.GET.get('q')
  if q is not None:
      # Redirect the user
        response = HttpResponse(status=302) #use status = 302 for temporary redirects
        response['Location'] = reverse('page6') # page6 is the name of the url
        return response
    else:
     return HttpResponse("<h1>Page 1</h1>")

إعادة التوجيه الدائم في جانغو

يشير رمز الحالة 301 إلى إعادة توجيه دائمة.
from django.shortcuts import HttpResponse
from django.shortcuts import redirect, reverse
 
def redirect_view1(request):
  q = request.GET.get('q')
    if q is not None:
      # Redirect the user
        response = HttpResponse(status=301) #use status = 301 for permanent redirects
        response['Location'] = reverse('page6') # page6 is the name of the url
        return response
    else:
      return HttpResponse("<h1>Page 1</h1>")

لا يوجد تعليقات

أضف تعليق