urlmiddleware আপনি বরং প্রতি একক অনুরোধ বিশ্বব্যাপী মিডলওয়্যার যোগ চেয়ে URL কনফিগারেশনের উপর ভিত্তি করে আপনার জ্যাঙ্গো প্রকল্পে মিডলওয়্যার সংজ্ঞায়িত করতে পারবেন একটি জ্যাঙ্গো অ্যাপ্লিকেশন.
কেন?
বিশ্বব্যাপী মিডলওয়্যার যোগ করার পদ্ধতি সবসময় একটি ভাল জিনিস না. আপনি শুধুমাত্র এটি আপনার ওয়েবসাইটের নির্দিষ্ট অঞ্চলের প্রভাব গ্রহণ করতে পারেন. থার্ড পার্টি অ্যাপ্লিকেশন তারপর url.py ফাইলের মধ্যে তাদের মিডলওয়্যার সংজ্ঞা অন্তর্ভুক্ত এবং আপনি গ্লোবাল সেটিংস পরিবর্তন করার জন্য প্রয়োজন অপসারণ করতে পারেন.
দ্রুত
Urlmiddleware ইনস্টল করুন:
urlmiddleware ইনস্টল বীচি
যাইহোক, যদি আপনি তারপর URL ভিত্তিক মিডলওয়্যার নিয়ন্ত্রণ করবে এক গ্লোবাল মিডলওয়্যার বর্গ রেজিস্টার করতে হবে না, আপনার ইনস্টল Apps এটি যোগ করার কোন প্রয়োজন নেই:
MIDDLEWARE_CLASSES = (
& Nbsp; # ...
& Nbsp; # অন্য সকল মিডলওয়্যার পর urlmiddleware যোগ করুন.
& Nbsp; 'urlmiddleware.URLMiddleware',
)
আপনার স্বাভাবিক URL সংজ্ঞা নিচে আপনার url.py ফাইলের মধ্যে আপনার প্রকল্পের মিডলওয়্যার যোগ শুরু:
middlewarepatterns = নিদর্শন ('',
& Nbsp; URL (রাঃ '^ MyApp /', MyMiddleWareClass),
)
একটি সাধারণ উদাহরণ আপনার URL গাছ পুরো সাব বিভাগে প্রয়োজন লগ ইন যোগ করার জন্য এই কৌশল ব্যবহার করা হয়. প্রথমে আপনি একটি LoginRequiredMiddleware তৈরি করা প্রয়োজন:
django.conf আমদানি সেটিংস থেকে
django.contrib.auth.views আমদানি লগইন থেকে
django.http আমদানি থেকে HttpResponseRedirect
বর্গ LoginRequiredMiddleware (বস্তু):
& Nbsp; Def process_request (স্ব, অনুরোধ):
& Nbsp; login_path = settings.LOGIN_URL
& Nbsp; যদি request.path = login_path এবং request.user.is_anonymous ()!:
& Nbsp; request.POST যদি:
& Nbsp; ফিরে লগইন (অনুরোধ)
& Nbsp; অন্য:
& Nbsp; HttpResponseRedirect ('% এর পরের =% এর?'% (Login_path, request.path)) ফিরে
তারপর আপনার urls.py ফাইলে:
myapp.middleware আমদানি LoginRequiredMiddleware থেকে
middlewarepatterns = নিদর্শন ('',
& Nbsp; URL (রাঃ '^ অ্যাকাউন্ট /', LoginRequiredMiddleware),
)
কাজ হয়ে গেছে!
আবশ্যক
- পাইথন
<লি> জ্যাঙ্গো
পাওয়া মন্তব্যসমূহ না