11from os .path import join
22from typing import Any
3+ from bokeh_django import with_request , with_url_args
34
45from django .conf import settings
56from django .http import HttpRequest , HttpResponse
1213from bokeh .plotting import figure
1314from bokeh .sampledata .sea_surface_temperature import sea_surface_temperature
1415from bokeh .themes import Theme
16+ import panel as pn
1517
1618from .shape_viewer import shape_viewer
1719
@@ -27,6 +29,15 @@ def shape_viewer_handler(doc: Document) -> None:
2729 panel .server_doc (doc )
2830
2931
32+ @with_url_args
33+ def shape_viewer_handler_with_args (doc , arg1 , arg2 ):
34+ viewer = shape_viewer ()
35+ pn .Column (
36+ viewer ,
37+ pn .pane .Markdown (f'## This app has URL Args: { arg1 } and { arg2 } ' )
38+ ).server_doc (doc )
39+
40+
3041def sea_surface_handler (doc : Document ) -> None :
3142 df = sea_surface_temperature .copy ()
3243 source = ColumnDataSource (data = df )
@@ -49,12 +60,6 @@ def callback(attr: str, old: Any, new: Any) -> None:
4960 doc .add_root (column (slider , plot ))
5061
5162
52- def with_request (f ):
53- def wrapper (doc ):
54- return f (doc , doc .session_context .request )
55- return wrapper
56-
57-
5863@with_request
5964def sea_surface_handler_with_template (doc : Document , request : Any ) -> None :
6065 sea_surface_handler (doc )
@@ -76,15 +81,20 @@ def sea_surface_handler_with_template(doc: Document, request: Any) -> None:
7681
7782
7883def sea_surface (request : HttpRequest ) -> HttpResponse :
79- script = server_document (request .build_absolute_uri ())
84+ script = server_document (request .get_full_path ())
8085 return render (request , "embed.html" , dict (script = script ))
8186
8287
8388def sea_surface_custom_uri (request : HttpRequest ) -> HttpResponse :
84- script = server_document (request . _current_scheme_host + "/sea_surface_custom_uri" )
89+ script = server_document ("/sea_surface_custom_uri" )
8590 return render (request , "embed.html" , dict (script = script ))
8691
8792
8893def shapes (request : HttpRequest ) -> HttpResponse :
89- script = server_document (request .build_absolute_uri ())
94+ script = server_document (request .get_full_path ())
95+ return render (request , "embed.html" , dict (script = script ))
96+
97+
98+ def shapes_with_args (request : HttpRequest , arg1 : str , arg2 : str ) -> HttpResponse :
99+ script = server_document (request .get_full_path ())
90100 return render (request , "embed.html" , dict (script = script ))
0 commit comments