Skip to content

Page

Page #

Bases: BasePage

Page is a container for View controls.

A page instance and the root view are automatically created when a new user session started.

auth #

auth: Authorization | None

browser_context_menu #

browser_context_menu: BrowserContextMenu = field(
    default_factory=lambda: BrowserContextMenu(),
    metadata={"skip": True},
)

Used to enable or disable the context menu that appears when the user right-clicks on the web page.

Note

Web only.

client_ip #

client_ip: str | None = None

IP address of the connected user.

Note

This property is web only.

client_user_agent #

client_user_agent: str | None = None

Browser details of the connected user.

Note

This property is web only.

clipboard #

clipboard: Clipboard = field(
    default_factory=lambda: Clipboard(),
    metadata={"skip": True},
)

TBD

debug #

debug: bool = False

True if Flutter client of Flet app is running in debug mode.

executor #

executor: ThreadPoolExecutor | None

fonts #

fonts: dict[str, str] | None = None

Defines the custom fonts to be used in the application.

Value is a dictionary, in which the keys represent the font family name used for reference and the values: - Key: The font family name used for reference. - Value: The font source, either an absolute URL or a relative path to a local asset. The following font file formats are supported .ttc, .ttf and .otf.

Usage example here.

loop #

multi_view #

multi_view: bool = False

TBD

multi_views #

multi_views: list[MultiView] = field(default_factory=list)

TBD

name #

name: str

on_app_lifecycle_state_change #

on_app_lifecycle_state_change: (
    EventHandler[AppLifecycleStateChangeEvent] | None
) = None

Triggers when app lifecycle state changes.

on_close #

on_close: ControlEventHandler[Page] | None = None

Called when a session has expired after configured amount of time (60 minutes by default).

on_connect #

on_connect: ControlEventHandler[Page] | None = None

Called when a web user (re-)connects to a page session.

It is not triggered when an app page is first opened, but is triggered when the page is refreshed, or Flet web client has re-connected after computer was unlocked. This event could be used to detect when a web user becomes "online".

on_disconnect #

on_disconnect: ControlEventHandler[Page] | None = None

Called when a web user disconnects from a page session, i.e. closes browser tab/window.

on_error #

on_error: ControlEventHandler[Page] | None = None

Called when unhandled exception occurs.

on_keyboard_event #

on_keyboard_event: EventHandler[KeyboardEvent] | None = None

Called when a keyboard key is pressed.

on_login #

on_login: EventHandler[LoginEvent] | None = None

Called upon successful or failed OAuth authorization flow.

See Authentication guide for more information and examples.

on_logout #

on_logout: ControlEventHandler[Page] | None = None

Called after page.logout() call.

on_multi_view_add #

on_multi_view_add: (
    EventHandler[MultiViewAddEvent] | None
) = None

TBD

on_multi_view_remove #

on_multi_view_remove: (
    EventHandler[MultiViewRemoveEvent] | None
) = None

TBD

on_platform_brightness_change #

on_platform_brightness_change: (
    EventHandler[PlatformBrightnessChangeEvent] | None
) = None

Called when brightness of app host platform has changed.

on_route_change #

on_route_change: EventHandler[RouteChangeEvent] | None = (
    None
)

Called when page route changes either programmatically, by editing application URL or using browser Back/Forward buttons.

on_view_pop #

on_view_pop: EventHandler[ViewPopEvent] | None = None

Called when the user clicks automatic "Back" button in AppBar control.

platform #

platform: PagePlatform | None = None

The operating system the application is running on.

platform_brightness #

platform_brightness: Brightness | None = None

The current brightness mode of the host platform.

Note

This property is read-only.

pubsub #

pubsub: PubSubClient

pwa #

pwa: bool = False

True if the application is running as Progressive Web App (PWA).

Value is read-only.

query #

query: QueryString

route #

route: str | None = None

Get or sets page's navigation route. See Navigation and routing section for more information and examples.

session #

session: SessionStorage

shared_preferences #

shared_preferences: SharedPreferences = field(
    default_factory=lambda: SharedPreferences(),
    metadata={"skip": True},
)

TBD

storage_paths #

storage_paths: StoragePaths = field(
    default_factory=lambda: StoragePaths(),
    metadata={"skip": True},
)

TBD

test #

test: bool = False

TBD

url #

url: str | None

url_launcher #

url_launcher: UrlLauncher = field(
    default_factory=lambda: UrlLauncher(),
    metadata={"skip": True},
)

TBD

wasm #

wasm: bool = False

TBD

web #

web: bool = False

True if the application is running in the web browser.

window #

window: Window = field(default_factory=lambda: Window())

Provides properties/methods/events to monitor and control the app's native OS window.

before_event #

before_event(e: ControlEvent)

can_launch_url #

can_launch_url(url: str) -> bool

Checks whether the specified URL can be handled by some app installed on the device.

PARAMETER DESCRIPTION
url

The URL to check.

TYPE: str

RETURNS DESCRIPTION
bool

True if it is possible to verify that there is a handler available.

bool

False if there is no handler available,

bool

or the application does not have permission to check. For example:

bool
  • On recent versions of Android and iOS, this will always return False unless the application has been configuration to allow querying the system for launch support.
bool
  • In web mode, this will always return False except for a few specific schemes that are always assumed to be supported (such as http(s)), as web pages are never allowed to query installed applications.

close_in_app_web_view #

close_in_app_web_view() -> None

Closes in-app web view opened with launch_url().

📱 Mobile only.

error #

error(message: str) -> None

get_control #

get_control(id: int) -> BaseControl | None

Get a control by its id.

Example:

import flet as ft


def main(page: ft.Page):
    x = ft.IconButton(ft.Icons.ADD)
    page.add(x)
    print(type(page.get_control(x.uid)))


ft.run(main)

get_session #

get_session()

get_upload_url #

get_upload_url(file_name: str, expires: int) -> str

Generates presigned upload URL for built-in upload storage:

  • file_name - a relative to upload storage path.
  • expires - a URL time-to-live in seconds.

For example:

upload_url = page.get_upload_url("dir/filename.ext", 60)

To enable built-in upload storage provide upload_dir argument to flet.app() call:

ft.run(main, upload_dir="uploads")

go #

go(
    route: str,
    skip_route_change_event: bool = False,
    **kwargs: Any,
) -> None

A helper method that updates page.route, calls page.on_route_change event handler to update views and finally calls page.update().

launch_url #

launch_url(
    url: str | Url,
    *,
    web_popup_window_name: str | UrlTarget | None = None,
    web_popup_window: bool = False,
    web_popup_window_width: int | None = None,
    web_popup_window_height: int | None = None,
) -> None

Opens a web browser or popup window to a given url.

PARAMETER DESCRIPTION
url

The URL to open.

TYPE: str | Url

web_popup_window_name

Window tab/name to open URL in. Use UrlTarget.SELF for the same browser tab, UrlTarget.BLANK for a new browser tab (or in external application on mobile device), or a custom name for a named tab.

TYPE: str | UrlTarget | None DEFAULT: None

web_popup_window

Display the URL in a browser popup window.

TYPE: bool DEFAULT: False

web_popup_window_width

Popup window width.

TYPE: int | None DEFAULT: None

web_popup_window_height

Popup window height.

TYPE: int | None DEFAULT: None

login #

login(
    provider: OAuthProvider,
    fetch_user: bool = True,
    fetch_groups: bool = False,
    scope: list[str] | None = None,
    saved_token: str | None = None,
    on_open_authorization_url: Callable[
        [str], Coroutine[Any, Any, None]
    ]
    | None = None,
    complete_page_html: str | None = None,
    redirect_to_page: bool | None = False,
    authorization: type[AT] = AuthorizationImpl,
) -> AT

Starts OAuth flow.

See Authentication guide for more information and examples.

logout #

logout() -> None

Clears current authentication context. See Authentication guide for more information and examples.

run_task #

run_task(
    handler: Callable[InputT, Awaitable[RetT]],
    *args: args,
    **kwargs: kwargs,
) -> Future[RetT]

Run handler coroutine as a new Task in the event loop associated with the current page.

run_thread #

run_thread(
    handler: Callable[InputT, Any],
    *args: args,
    **kwargs: kwargs,
) -> None

Run handler function as a new Thread in the executor associated with the current page.

update #

update(*controls) -> None