How-to#

The Panel How-to guides provide step by step recipes for solving essential problems and tasks that arise during your work. They assume that you’ve completed the Getting Started material and therefore already have some knowledge of how Panel works. There is no order to the guides, other than any potential prerequisites listed at the top of a page. Jump to the topic that is relevant to you now.

Develop Efficiently#

Develop in a notebook

How to effectively develop apps in a notebook environment.

Develop in a notebook
Develop in an editor

How to effectively develop apps in a Python or Markdown file.

Develop in an editor

Build apps#

Construct components

How to construct and customize individual components like an image or slider widget.

Create Components
Arrange Components

How to arrange and size components on the page.

Arrange Components
Style components

How to apply designs, themes and custom styling to components to achieve a polished look and feel.

Style Components
Add interactivity

How to link add interactivity to your applications using reactive APIs.

Make your component interactive
Apply templates

How to use a Template to customize the look and feel of a deployed Panel app.

Apply Templates

Use specialized UIs and APIs#

Build a sequential UI

How to build a Panel Pipeline that connects multiple panels into a sequential user interface.

Build a Pipeline
Build custom components

How to extend Panel by building custom components.

Build Custom Components
Generate UIs from declared parameters (Declarative API)

How to use Parameterized classes with Panel to generate UIs without writing GUI code.

Declare UIs with Declarative API
Explicitly link parameters (Callbacks API)

How to link the parameters of Panel components in Python and Javascript.

Link Parameters with Callbacks API

Manage session tasks#

Register session callbacks

How to set up callbacks on session related events (e.g. on page load or when a session is destroyed) and define periodic tasks.

Register Session Callbacks
Access session state

How to access and manipulate state related to the user session, HTTP request and URL arguments.

Access Session State

Extending Panel#

Create Custom Components

How to create custom components including widgets, layouts and panes using pure-Python, JS or React.

Build Custom Components

Test and debug#

Enable profiling and debugging

How to profile and debug your application using the admin dashboard and other tools.

Enable Profiling and Debugging
Set up testing for an application

How to set up unit tests, UI tests and load testing to ensure your applications are (and stay) robust and scalable.

Set up testing for an application
Configure Logging

How to configure the logging level and format

Configure Logging

Prepare to share#

Improve performance

Discover some tips and tricks instructing you on how you can improve the performance of your application.

Improve the Performance
Cache data

How to cache data across sessions and memoize the output of functions.

Cache Data
Improve scalability

How to improve the scalability of your Panel application.

Add concurrent processing
Best Practices

A checklist of best practices for improving the development and user experience with Panel.

Apply best practices
Add authentication

How to configure OAuth to add authentication to a server deployment.

Configuring Authentication

Share your work#

Configure the server

How to configure the Panel server.

Configuring a Panel server
Integrate with other servers

How to integrate Panel in other application based on Flask, FastAPI or Django.

Server Integrations
Deploy applications

How to deploy Panel applications to various cloud providers (e.g. Azure, GCP, AWS etc.)

Deploying Panel Applications
Export apps

How to export and save Panel applications as static files.

Export Apps
Run panel in WebAssembly

How to run Panel applications entirely in the browser using WebAssembly (Wasm), Pyodide, and PyScript.

Running Panel in the Browser with WASM

Migrate to Panel#

Migrate from Streamlit
https://assets.holoviz.org/panel/background/comparisons/streamlit_logo.png

How to migrate existing Streamlit applications to Panel.

Migrate from Streamlit to Panel
Migrate from AnyWidget
https://assets.holoviz.org/panel/background/comparisons/anywidget_logo.png

How to convert AnyWidget widgets to Panel widgets.

Converting from AnyWidget to Panel