Tài liệu, và quan trọng hơn, một số ví dụ mã sẽ rất hữu ích. Tôi muốn điều này không được trong các kịch bản được bảo vệ, nhưng trong mã mà đi vào các gói hiện đại.Làm thế nào để bạn nhận và đặt cookie trong Zope và Plone?
Trả lời
Sử dụng phương pháp response.setCookie()
. Bạn có thể tiếp cận đối tượng phản hồi thông qua đối tượng yêu cầu. Sau đó bạn có thể đạt được thông qua mua lại (self.REQUEST
), hoặc trong quan điểm bằng cách truy cập các đối tượng yêu cầu thông qua trong, thường là thông qua self.request
:
self.request.response.setCookie(name, value, **options)
nơi options
cuối lên như thêm các thông số cookie. Do đó, việc chuyển cookie thành cookie không phải phiên sẽ yêu cầu từ khóa expires='date'
, giới hạn cookie thành đường dẫn là từ khóa path='/somepath'
đến phương pháp setCookie()
. Quy tắc cookie trình duyệt thông thường áp dụng ở đây.
Để hết hạn cookie đã được thiết lập trong trình duyệt, bạn có thể hoặc sử dụng một từ khóa expires='date in the past'
, hoặc bạn có thể sử dụng phương pháp response.expireCookie()
, mà thực hiện điều này cho bạn:
self.request.response.expireCookie(name, **options)
Trong trường hợp này bạn vẫn có thể bao gồm các tùy chọn như path
hoặc các cờ cookie khác, nhưng phương pháp sẽ ghi đè các tùy chọn max_age
và expires
để đảm bảo cookie bị xóa bởi trình duyệt.
Mặc dù bạn có thể sử dụng hỗ trợ SESSION
của Zope, bạn thực sự cần phải suy nghĩ thông qua các vấn đề về khả năng mở rộng. Ví dụ, bạn cần phải suy nghĩ về cách dữ liệu phiên sẽ được chia sẻ trên một cụm nếu bạn sử dụng ZEO hoặc RelStorage. Thông thường, bạn nên tránh sử dụng SESSION
nếu tính năng mở rộng có thể là một vấn đề.
Để đặt cookie bạn sử dụng RESPONSE.setCookie.
>>> self.REQUEST.RESPONSE.setCookie('cookiename', 'cookievalue', expires='Wed, 22 June 2009 12:00:00 GMT')
Cookie sẽ kết thúc trong YÊU CẦU trong yêu cầu tiếp theo.
>>> self.REQUEST['cookiename']
'cookievalue'
Bạn "xóa" cookie bằng cách sử dụng None
làm giá trị.
** Lưu ý, mặc dù, hầu hết thời gian khi mọi người sử dụng cookie để lưu các biến có liên quan đến phiên, và bạn có thể sử dụng self.REQUEST.SESSION cho điều đó, nó dễ dàng hơn.
- 1. Plone và Asp.Net Integration
- 2. Làm cách nào để đặt và nhận cookie (phía máy chủ) trong Meteor?
- 3. PHPUnit :: Làm cách nào để có thể đặt và nhận cookie, thử nghiệm?
- 4. làm thế nào để bỏ đặt cookie trong PHP?
- 5. Làm thế nào để bạn đặt thời gian và chỉ thời gian trong lịch trong Java?
- 6. Làm cách nào để tôi có thể đặt cookie và sau đó chuyển hướng trong PHP?
- 7. Làm thế nào để cấu hình và và nhận Javascript
- 8. Làm thế nào để thiết lập cookie trong Django và sau đó làm mẫu?
- 9. Làm thế nào để bạn đặt CMAKE_C_COMPILER và CMAKE_CXX_COMPILER để xây dựng Assimp cho iOS?
- 10. Làm cách nào để tôi đặt và nhận thẻ UIButtons?
- 11. nhận và đặt trong C#
- 12. Làm thế nào để bạn tìm hiểu WPF và Silverlight?
- 13. xmlhttprequest và set-cookie & cookie
- 14. Làm thế nào để bạn hòa giải IDisposable và IoC?
- 15. Làm thế nào để thiết lập cookie
- 16. Buildout.cfg đơn giản nhất có thể cài đặt Zope 2 là gì?
- 17. Làm cách nào để đặt cookie HttpOnly trong Django?
- 18. Làm cách nào để bạn kiểm tra cookie bằng Chrome?
- 19. Làm thế nào để lưu trữ chuỗi trong một cookie và truy xuất nó
- 20. Làm thế nào để bạn loại bỏ một Cookie trong Java Servlet
- 21. Làm thế nào để bạn cài đặt Jekyll trên OSX?
- 22. Cookie trên HTTP và HTTPS trong PHP
- 23. Cách "tốt nhất" để nhận và đặt giá trị cookie đơn bằng cách sử dụng JavaScript
- 24. Làm cách nào để đặt cookie ở Jersey?
- 25. Làm thế nào để bạn chia tỷ lệ hình ảnh GIF động trong PIL và bảo toàn hoạt ảnh
- 26. Làm thế nào để làm wget với cookie trong PowerShell
- 27. Đặt cookie trong ứng dụng iOS và đọc cookie đó từ Safari
- 28. Làm cách nào để đặt cookie phản hồi trên HttpReponseMessage?
- 29. Làm thế nào để bạn có được ma trận modelview và chiếu trong OpenGL?
- 30. Làm thế nào để gọi một cookie javascript trong servlet?
Cảm ơn phản hồi này! Chúng tôi chạy với 3-4 trường hợp cho mỗi ứng dụng zope vì vậy * không * phải lo lắng về trường hợp chúng tôi đang nhấn là một điều rất hay. – pydanny