A lightweight static file server for Flet apps, designed to simplify mobile debugging by serving assets over a local network.
Project description
# **StaticServer Documentation** 🚀
The `StaticServer` class is designed to simplify debugging for mobile devices (iOS/Android) in Flet apps. It serves static files (like images, icons, or text files) from your computer, making them accessible to mobile devices during development. 📱💻
---
## **Why Use StaticServer?** 🤔
When developing for mobile:
- Direct file paths from your computer won’t work on devices. 🚫
- StaticServer hosts your files locally, providing a URL (`server.assets`) that devices can access. 🌐
- Perfect for debugging and testing assets on real devices. 🛠️
---
## **How to Use It** 🛠️
### **1. Installation**
pip install flet-staticserver
from flet_staticserver import StaticServer
2. Basic Setup
Start the server and use it in your Flet app:
import flet as ft
from serve_files import StaticServer
# Initialize the server 🎬
server = StaticServer()
def main(page: ft.Page):
# Access files using server.assets 🖼️
page.add(
ft.Image(src=f"{server.assets}/icon.png"),
ft.Text(f"Access files at: {server.assets}")
)
# Run your Flet app 🚀
ft.app(main)
3. Customization Options ⚙️
Customize the server to fit your needs:
- Change the folder: Serve files from a specific directory.
- Change the port: Use a different port if needed.
server = StaticServer(
directory="path/to/your/assets", # 🗂️ Custom folder
port=2222 # 🚪 Custom port
)
4. Accessing Files 📂
Once the server is running, access your files like this:
- File in root:
{server.assets}/file.txt - File in subfolder:
{server.assets}/images/photo.jpg
Example:
ft.Image(src=f"{server.assets}/images/icon.png")
How It Works 🧙♂️
- The server runs in the background using FastAPI and UVicorn. ⚡
- It automatically detects your machine's IPv4 address, so devices on the same network can access the files. 🌐
- Files are served dynamically, making debugging seamless. 🛠️
Example Use Case 🖼️
Display an image from your assets folder on a mobile device:
import flet as ft
from serve_files import StaticServer
# Start the server 🎬
server = StaticServer()
def main(page: ft.Page):
# Display an image from the server 🖼️
page.add(
ft.Image(src=f"{server.assets}/icon.png"),
ft.Text("Your image is live!")
)
# Run the app 🚀
ft.app(main)
Why It’s Useful ❤️
- Solves the problem of inaccessible local files on mobile devices. 📱
- Simplifies debugging and testing during development. 🛠️
- Works seamlessly with Flet apps. 🎯
Final Notes 📝
- The server stops automatically when your app closes.
- Use
server.assetsto get the base URL for your files. - Happy debugging! 😄👨💻👩💻
Enjoy building and debugging your Flet apps! 🎉
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file flet_assets-0.2.0.tar.gz.
File metadata
- Download URL: flet_assets-0.2.0.tar.gz
- Upload date:
- Size: 7.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
20273dfcec7069459696b4163c9c6184c5ddfdcb9cf64c4db5d34043f062e6ea
|
|
| MD5 |
df92f6eb74fea419d2b2b2f2e89c97fe
|
|
| BLAKE2b-256 |
84162edf654dfdb34307ab589eae14ac9fd8011b083fc53eab5547e9e69f9c5a
|
File details
Details for the file flet_assets-0.2.0-py3-none-any.whl.
File metadata
- Download URL: flet_assets-0.2.0-py3-none-any.whl
- Upload date:
- Size: 6.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fba07f88a3da312c556d3c74532f80698396bd9f37d3641315b95ca87960836b
|
|
| MD5 |
d97cb681b2e9cf725249590581bf4c17
|
|
| BLAKE2b-256 |
8c3cd0c319bd344cafb64b2d522034ba110c7389cafce648f866ed378d450518
|