سنتعلم في هذا الدرس كيفية إعادة توجيه المستخدم من صفحة إلى أخرى.
إعادة التوجيه باستخدام المسار المضمن في 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>")
ليست هناك تعليقات:
إرسال تعليق