Can a Jupyter / IPython laptop accept arguments in a URL?

Is it possible to write a Jupyter laptop in such a way that the parameters can be passed through the laptop URL?

Example: for a URL such as:

http://jupyter.example.com/user/me/notebooks/notebook1.ipynb?Variable1=Value1&Variable2=Value2 

How to access Variable1 and Variable2 inside a Jupyter cell?

+6
source share
2 answers

You need to find out the URL using JavaScript and pass it to the IPython kernel:

 from IPython.display import HTML HTML(''' <script type="text/javascript> IPython.notebook.kernel.execute("URL = ' + window.location + "'") </script>''') 

or

 %%javascript IPython.notebook.kernel.execute("URL = '" + window.location + "'"); 

Then in the next cell:

 print(URL) 

After that, you can use the tools in the standard library (or simple string operations) to pull out the query parameters.

+7
source

You just need to take the values ​​using javascript and push them into the ipython kernel, as in the John Schmitt link.

Cell [1]:

 %%javascript function getQueryStringValue (key) { return unescape(window.location.search.replace(new RegExp("^(?:.*[&\\?]" + escape(key).replace(/[\.\+\*]/g, "\\$&") + "(?:\\=([^&]*))?)?.*$", "i"), "$1")); } IPython.notebook.kernel.execute("Var1='".concat(getQueryStringValue("Variable1")).concat("'")); IPython.notebook.kernel.execute("Var2='".concat(getQueryStringValue("Variable2")).concat("'")); 

And in another cell, you can get python variables named Var1 and Var2:

 >>>print Var1 Value1 

and

 >>>print Var2 Value2 
+2
source

All Articles