A streamlit custom component providing a searchbox with autocomplete.
pip install streamlit-searchbox
Create a searchbox component and pass a search_function
that accepts a str
searchterm. The searchbox is triggered on user input, calls the search function for new options and redraws the page via st.experimental_rerun()
.
You can either pass a list of arguments, e.g.
import wikipedia
from streamlit_searchbox import st_searchbox
# function with list of labels
def search_wikipedia(searchterm: str) -> List[any]:
return wikipedia.search(searchterm) if searchterm else []
# pass search function to searchbox
selected_value = st_searchbox(
search_wikipedia,
key="wiki_searchbox",
)
This example will call the Wikipedia Api to reload suggestions. The selected_value
will be one of the items the search_wikipedia
function returns, the suggestions shown in the UI components are a str
representation. In case you want to provide custom text for suggestions, pass a Tuple
.
def search(searchterm: str) -> List[Tuple[str, any]]:
...
To customize the searchbox you can pass the following arguments:
search_function: Callable[[str], List[any]]
Function that will be called on user input
placeholder: str = "Search ..."
Placeholder for empty searches shown within the component.
label: str = None
Label shown above the component.
default: any = None
Default return value in case nothing was submitted or the searchbox cleared.
clear_on_submit: bool = False
Automatically clear the input after selection.
key: str = "searchbox"
Streamlit key for unique component identification.
An example Streamlit app can be found here