كيف يمكنك الحصول على وتعيين ملفات تعريف الارتباط في Zope وبلون؟

StackOverflow https://stackoverflow.com/questions/1034252

  •  06-07-2019
  •  | 
  •  

سؤال

والتوثيق، والأهم من ذلك، فإن بعض أمثلة التعليمات البرمجية تكون مفيدة جدا. وأود أن تفضل هذا أن لا يكون في النصوص المحمية، ولكن في التعليمات البرمجية التي تذهب إلى حزم الحديثة.

هل كانت مفيدة؟

المحلول

استخدم طريقة response.setCookie(). يمكنك الوصول إلى كائن استجابة عبر كائن الطلب. هذا الأخير يمكنك الوصول عن طريق اقتناء (self.REQUEST)، أو في وجهات النظر عن طريق الوصول إلى تمريره في وجوه الطلب، عادة عن طريق self.request:

self.request.response.setCookie(name, value, **options)

وحيث options ينتهي المعلمات الكعكة كما إضافية. وهكذا، تحول الكعكة إلى ارتباط غير الدورة يتطلب الكلمة expires='date'، مما يحد من الكعكة إلى مسار هو الكلمة path='/somepath' إلى أسلوب setCookie(). تطبيق القواعد الكعكة متصفح المعتاد هنا.

لتنتهي الكعكة وضعت بالفعل في المتصفح، هل يمكن إما استخدام الكلمة expires='date in the past'، أو هل يمكن استخدام الأسلوب response.expireCookie()، الذي يفعل هذا بالنسبة لك:

self.request.response.expireCookie(name, **options)

في هذه الحالة لا يزال بإمكانك تشمل خيارات مثل path أو غيرها من الأعلام الكعكة، ولكن تم حذف طريقة ستتجاوز الخيارات max_age وexpires لضمان الكعكة من قبل المتصفح.

وعلى الرغم من أنك يمكن أن تستخدم الدعم SESSION Zope، وكنت حقا بحاجة إلى التفكير في القضايا تطويره. على سبيل المثال، تحتاج إلى التفكير في الكيفية التي سيتم بها تقاسم بيانات الجلسة عبر مجموعة إذا كنت تستخدم ZEO أو RelStorage. فمن الأفضل عموما لتجنب استخدام SESSION تماما إذا التدرجية سوف تكون هذه القضية.

نصائح أخرى

لوضع الكوكيز التي تستخدمها RESPONSE.setCookie.

>>> self.REQUEST.RESPONSE.setCookie('cookiename', 'cookievalue', expires='Wed, 22 June 2009 12:00:00 GMT')

وملف تعريف الارتباط في نهاية المطاف في طلب في طلب المقبل.

>>> self.REQUEST['cookiename']
'cookievalue'

وأنت "حذف" الكوكيز باستخدام None كقيمة.

و** ملاحظة، على الرغم من أن معظم الأوقات التي يستخدمها الناس الكوكيز انها لتخزين المتغيرات التي لها علاقة مع الدورات، ويمكنك استخدام self.REQUEST.SESSION لذلك، انها أسهل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top