Can a Jupyter / IPython notebook take arguments in the URL?

后端 未结 2 1706
我在风中等你
我在风中等你 2020-12-14 21:51

Is it possible to write an Jupyter notebook such that parameters can be passed in via the URL of the notebook?

Example, for a URL such as this:

http:         


        
相关标签:
2条回答
  • 2020-12-14 21:58

    You just need to take the values with javascript and push them to the ipython kernel like in the John Schmitt's 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 retrieve the python variables named Var1 and Var2:

    >>>print Var1
    Value1
    

    And:

    >>>print Var2
    Value2
    
    0 讨论(0)
  • 2020-12-14 22:14

    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 this you can use the tools in the standard library (or plain string operations) to pull out the query parameters.

    0 讨论(0)
提交回复
热议问题