Generates a shareable URL for Python Shiny applications that can run in the browser using Shinylive. Supports character strings, file paths, named lists, and clipboard input.
Arguments
- input
App input. Can be:
Character string: Python code for the app
File path: Path to app.py file
Vector of file paths: Multiple files for the app
Named list:
list("app.py" = code1, "utils.py" = code2)NULL: Read from clipboard
- mode
Shinylive display mode (default
"editor")."editor"shows an editable code panel beside the running app;"app"shows only the running app.- header
Logical, whether to show the Shinylive header bar. It applies only when
mode = "app"and is ignored in the default"editor"mode. Defaults toTRUE.- base_url
Custom Shinylive base URL. If NULL (default), links point at https://shinylive.io.
See also
shinylive_project() for multi-file apps; decode_shinylive_link()
and preview_shinylive_link() to read a link back.
Examples
# String input
app_code <- "
from shiny import App, render, ui
app_ui = ui.page_fluid(ui.h2('Hello World'))
def server(input, output, session): pass
app = App(app_ui, server)
"
shinylive_py_link(app_code)
#>
#> ── Shinylive Python App ──
#>
#> <https://shinylive.io/py/editor/#code=NobwRAdghgtgpmAXGKAHVA6VBPMAaMAYwHsIAXOcpMAHQgDMAnYmAAgGcALASwm1e4xUxRmVYBBdHlaNKAEziNpAV2500qAPqrWAXlaqsUAOZxN9ADaq5ACkOcATDYDkACTgWLxVgHURFuWcASiC6BXoORQA3RRteVGUyaWJEhKTI9nZuUiDEVlQoTPV0PQl0Gw1tbml2aMVQiHwwMmxUBGQKAA8yMABfAF0gA>
#>
#> Files (1):
#> app.py
#>
#> Engine: "Python"
#> Mode: "editor"
# Multiple files as a named list
shinylive_py_link(list(
"app.py" = app_code,
"utils.py" = "def helper(): return 42"
))
#>
#> ── Shinylive Python App ──
#>
#> <https://shinylive.io/py/editor/#code=NobwRAdghgtgpmAXGKAHVA6VBPMAaMAYwHsIAXOcpMAHQgDMAnYmAAgGcALASwm1e4xUxRmVYBBdHlaNKAEziNpAV2500qAPqrWAXlaqsUAOZxN9ADaq5ACkOcATDYDkACTgWLxVgHURFuWcASiC6BXoORQA3RRteVGUyaWJEhKTI9nZuUiDEVlQoTPV0PQl0Gw1tbml2aMVQiHwwMmxUBGQKAA8yMABfPHBoeGpE7gt2LFwCEnJKHuRw1k4PNsYbXJk4MmVGCFYAFgcmlrbqLp7egF0gA>
#>
#> Files (2):
#> app.py
#> utils.py
#>
#> Engine: "Python"
#> Mode: "editor"
# File path input
app_dir <- tempfile()
dir.create(app_dir)
app_path <- file.path(app_dir, "app.py")
writeLines("from shiny import App, ui", app_path)
shinylive_py_link(app_path)
#>
#> ── Shinylive Python App ──
#>
#> <https://shinylive.io/py/editor/#code=NobwRAdghgtgpmAXGKAHVA6VBPMAaMAYwHsIAXOcpMAMwCdiYACAZwAsBLCbJjmVYnTJMAgujxMArh3xgy2VAmQUAHmTABfALpA>
#>
#> Files (1):
#> app.py
#>
#> Engine: "Python"
#> Mode: "editor"
# Read the app from the clipboard
if (interactive()) {
shinylive_py_link()
}