bokeh.application.handlers.handler#
Provide a base class for Bokeh Application handler classes.
When a Bokeh server session is initiated, the Bokeh server asks the Application
for a new Document to service the session. To do this, the Application first
creates a new empty Document, then it passes this new Document to the
modify_document method of each of its handlers. When all handlers have
updated the Document, it is used to service the user session.
Below is an example outline of a custom handler that might modify documents based off information in some database:
class DatabaseHandler(Handler):
    """ A Bokeh Application handler to initialize Documents from a database
    """
    def modify_document(self, doc: Document) -> None:
        # do some data base lookup here to generate 'plot'
        # add the plot to the document (i.e modify the document)
        doc.add_root(plot)
- class Handler[source]#
- Provide a mechanism for Bokeh applications to build up new Bokeh Documents. - modify_document(doc: Document) None[source]#
- Modify an application document in a specified manner. - When a Bokeh server session is initiated, the Bokeh server asks the Application for a new Document to service the session. To do this, the Application first creates a new empty Document, then it passes this Document to the - modify_documentmethod of each of its handlers. When all handlers have updated the Document, it is used to service the user session.- Subclasses must implement this method - Parameters:
- doc (Document) – A Bokeh Document to update in-place 
- Returns:
- Document 
 
 - on_server_loaded(server_context: ServerContext) None[source]#
- Execute code when the server is first started. - Subclasses may implement this method to provide for any one-time initialization that is necessary after the server starts, but before any sessions are created. - Parameters:
- server_context (ServerContext) 
 
 - on_server_unloaded(server_context: ServerContext) None[source]#
- Execute code when the server cleanly exits. (Before stopping the server’s - IOLoop.)- Subclasses may implement this method to provide for any one-time tear down that is necessary before the server exits. - Parameters:
- server_context (ServerContext) 
 - Warning - In practice this code may not run, since servers are often killed by a signal. 
 - async on_session_created(session_context: SessionContext) None[source]#
- Execute code when a new session is created. - Subclasses may implement this method to provide for any per-session initialization that is necessary before - modify_docis called for the session.- Parameters:
- session_context (SessionContext) 
 
 - async on_session_destroyed(session_context: SessionContext) None[source]#
- Execute code when a session is destroyed. - Subclasses may implement this method to provide for any per-session tear-down that is necessary when sessions are destroyed. - Parameters:
- session_context (SessionContext) 
 
 - process_request(request: HTTPServerRequest) dict[str, Any][source]#
- Processes incoming HTTP request returning a dictionary of additional data to add to the session_context. - Parameters:
- request – HTTP request 
- Returns:
- A dictionary of JSON serializable data to be included on the session context. 
 
 - url_path() str | None[source]#
- Returns a default URL path, if applicable. - Handlers subclasses may optionally implement this method, to inform the Bokeh application what URL it should be installed at. - If multiple handlers specify - url_paththe Application will use the value from the first handler in its list of handlers.