zope.browserpage

raw JSON →
6.0 verified Mon Apr 27 auth: no python

Provides ZCML directives for configuring browser views and pages in Zope applications. Current version 6.0, requires Python >=3.9. Released under the Zope Foundation, maintained as part of the Zope Toolkit.

pip install zope.browserpage
error TypeError: render() must return bytes, not str
cause BrowserPage.render() returns a string instead of bytes.
fix
Convert the return value to bytes: return b"..." or return "...".encode()
error ModuleNotFoundError: No module named 'zope.browser.browserpage'
cause Importing from the deprecated location.
fix
Change import to 'from zope.browserpage import BrowserPage'
breaking zope.browserpage 6.0 dropped Python 2 support and requires Python >=3.9. Ensure your environment meets these requirements.
fix Upgrade Python to 3.9 or later.
gotcha BrowserPage.render() must return bytes, not str. Returning a string will cause a TypeError.
fix Ensure the render method returns bytes (e.g., b"content" or "content".encode()).
deprecated ZCML-based configuration is the traditional approach, but many Zope projects are moving to Grok or direct configuration. New projects should consider alternatives.
fix Use zope.browserpage directives in ZCML or consider using zope.browserresource for resources.

Simple example of using BrowserPage directly.

import zope.browserpage
from zope.browserpage import BrowserPage

class MyPage(BrowserPage):
    def render(self):
        return b"<html><body>Hello</body></html>"

# Assuming you have a request object
# page = MyPage(context, request)
# print(page.render())