در urlmiddleware یک برنامه جنگو که اجازه می دهد تا شما را به تعریف میان در پروژه جنگو خود را بر اساس تنظیمات URL به جای اضافه کردن میان در سطح جهانی به هر درخواست واحد است.
چرا؟
اضافه کردن میان در سطح جهان است همیشه چیز خوبی نیست. شما فقط ممکن است بخواهید آن را به اثر بر مناطق خاصی در وب سایت شما. برنامه های شخص ثالث نیز می تواند پس از آن شامل تعاریف میان خود را در فایل url.py و حذف نیاز را برای شما برای تغییر تنظیمات جهانی است.
شروع سریع
نصب urlmiddleware:
تصویر در تصویر urlmiddleware نصب
بدون نیاز به آن اضافه کنید تا برنامه های نصب شده خود را، با این حال، شما نیاز به ثبت نام یک کلاس میان جهانی که پس از آن کنترل خواهد شد middleware بر اساس URL وجود دارد:
MIDDLEWARE_CLASSES = (
از & nbsp؛ # ...
از & nbsp؛ # اضافه urlmiddleware بعد از همه میان دیگر.
& nbsp؛ در 'urlmiddleware.URLMiddleware،
)
شروع به اضافه کردن میان را به پروژه خود در فایل url.py خود را در زیر تعاریف URL های عادی خود را:
الگوهای middlewarepatterns = (''،
& nbsp؛ از URL (R '^ myapp /'، MyMiddleWareClass)،
)
یک مثال رایج است استفاده از این تکنیک برای اضافه کردن ورود مورد نیاز برای بخش های زیر کل درخت آدرس خود را. در ابتدا شما نیاز به ایجاد یک LoginRequiredMiddleware:
از django.conf تنظیمات واردات
از django.contrib.auth.views ورود واردات
از واردات django.http HttpResponseRedirect
کلاس LoginRequiredMiddleware (شی):
& nbsp؛ از دف process_request (خود، درخواست):
& nbsp؛ در login_path = settings.LOGIN_URL
& nbsp؛ اگر request.path = login_path و request.user.is_anonymous ():
& nbsp؛ اگر request.POST:
& nbsp؛ از ورود به بازگشت (درخواست)
& nbsp؛ از دیگری:
& nbsp؛ از بازگشت HttpResponseRedirect ('٪ s را در کنار =٪ s این؟'٪ (login_path، request.path))
سپس در فایل urls.py شما:
از myapp.middleware LoginRequiredMiddleware واردات
الگوهای middlewarepatterns = (''،
& nbsp؛ از URL (R '^ حساب /'، LoginRequiredMiddleware)،
)
! انجام شد
در مورد نیاز:
پایتون
جنگو
نظر یافت نشد