urlmiddleware เป็น app Django ที่ช่วยให้คุณสามารถกำหนดตัวกลางในโครงการ Django ของคุณขึ้นอยู่กับการกำหนดค่า URL ที่มากกว่าการเพิ่มตัวกลางทั่วโลกเพื่อให้ทุกคำขอเดียว
ทำไม?
เพิ่มตัวกลางทั่วโลกไม่ได้เป็นสิ่งที่ดีเสมอ คุณอาจต้องการให้มีผลบังคับใช้ในพื้นที่บางส่วนในเว็บไซต์ของคุณ ปพลิเคชันของบุคคลที่สามยังสามารถแล้วรวมคำจำกัดความของมิดเดิ้ลของพวกเขาในแฟ้ม url.py และลบความจำเป็นสำหรับคุณที่จะแก้ไขการตั้งค่าระดับโลก
เริ่มต้นอย่างรวดเร็ว
ติดตั้ง urlmiddleware:
PIP ติดตั้ง urlmiddleware
ไม่มีความจำเป็นที่จะเพิ่มปพลิเคชันที่ติดตั้งของคุณ แต่คุณไม่จำเป็นต้องลงทะเบียนชั้นตัวกลางหนึ่งของโลกนั้นจะควบคุมตัวกลางตาม URL ที่เป็น:
MIDDLEWARE_CLASSES = (
& nbsp; # ...
& nbsp; # เพิ่ม urlmiddleware หลังตัวกลางอื่น ๆ
& nbsp; 'urlmiddleware.URLMiddleware'
)
เริ่มต้นการเพิ่มตัวกลางในโครงการของคุณในไฟล์ url.py ของคุณด้านล่างนิยาม URL ของคุณปกติ:
middlewarepatterns รูปแบบ = ('',
& nbsp; สมาชิก (R '^ 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 ('% s ต่อไป =% s?'% (login_path, request.path))
จากนั้นในไฟล์ urls.py คุณ:
จากการนำเข้า myapp.middleware LoginRequiredMiddleware
middlewarepatterns รูปแบบ = ('',
& nbsp; สมาชิก (R '^ บัญชี /' LoginRequiredMiddleware)
)
! ทำ
ต้องการ
- งูใหญ่
- Django
ความคิดเห็นที่ไม่พบ