Quick Start#
This is a quick start guide to get you up and running with Seamless. The guide will show you how to setup Seamless and integrate it with FastAPI.
Installation#
First, we need to install the Seamless package.
$ pip install python-seamless
Create Reusable Page#
Seamless provides a default page component that is the minimal structure for a web page.
Since we want bootstrap to be included in all of our pages, we will create a new page component that extends the default page component and adds a link to the bootstrap stylesheet.
More information about the default page component can be found here.
# page.py
from seamless import Link
from seamless.components.page import Page
class AppPage(Page):
def head(self):
return (
*super().head(),
Link(
rel="stylesheet",
href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css"
)
)
Last, we create the FastAPI app and add an endpoint that will render our page when the user is accessing the root route.
# main.py
from fastapi import FastAPI
from fastapi.responses import HTMLResponse
from seamless import render, Div, P
from page import AppPage
app = FastAPI()
@app.get("/", response_class=HTMLResponse)
async def read_root():
return render(
AppPage(
Div(class_name="container mt-5")(
Div(class_name="text-center p-4 rounded")(
Div(class_name="display-4")(
"Hello, World!"
),
P(class_name="lead")(
"Welcome to seamless"
)
)
)
)
)
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="localhost", port=8000)
That’s it! Now you can run the app and access it at http://localhost:8000/.
It should display a page like this: