1
1
from os .path import join
2
2
from typing import Any
3
+ from bokeh_django import with_request , with_url_args
3
4
4
5
from django .conf import settings
5
6
from django .http import HttpRequest , HttpResponse
12
13
from bokeh .plotting import figure
13
14
from bokeh .sampledata .sea_surface_temperature import sea_surface_temperature
14
15
from bokeh .themes import Theme
16
+ import panel as pn
15
17
16
18
from .shape_viewer import shape_viewer
17
19
@@ -27,6 +29,15 @@ def shape_viewer_handler(doc: Document) -> None:
27
29
panel .server_doc (doc )
28
30
29
31
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
+
30
41
def sea_surface_handler (doc : Document ) -> None :
31
42
df = sea_surface_temperature .copy ()
32
43
source = ColumnDataSource (data = df )
@@ -49,12 +60,6 @@ def callback(attr: str, old: Any, new: Any) -> None:
49
60
doc .add_root (column (slider , plot ))
50
61
51
62
52
- def with_request (f ):
53
- def wrapper (doc ):
54
- return f (doc , doc .session_context .request )
55
- return wrapper
56
-
57
-
58
63
@with_request
59
64
def sea_surface_handler_with_template (doc : Document , request : Any ) -> None :
60
65
sea_surface_handler (doc )
@@ -76,15 +81,20 @@ def sea_surface_handler_with_template(doc: Document, request: Any) -> None:
76
81
77
82
78
83
def sea_surface (request : HttpRequest ) -> HttpResponse :
79
- script = server_document (request .build_absolute_uri ())
84
+ script = server_document (request .get_full_path ())
80
85
return render (request , "embed.html" , dict (script = script ))
81
86
82
87
83
88
def 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" )
85
90
return render (request , "embed.html" , dict (script = script ))
86
91
87
92
88
93
def 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 ())
90
100
return render (request , "embed.html" , dict (script = script ))
0 commit comments