/fasthtmx

FastAPI-HTMX Demo Project

Primary LanguageCSS

Fast-HTMX

Description

Fast-HTMX is a demo project of FastAPI and HTMX. The purpose of this project is to illustrate how to create a website with no JavaScript, using only HTML, CSS, and Python. HTMX is a plugin that allows this to be possible.

HTMX Attributes

The following HTMX attributes are used in this project:

  • hx-get
  • hx-post
  • hx-trigger
  • hx-target
  • hx-push-url
  • hx-indicator
  • hx-swap

Structure

db - Database setup

models - Data models

schema - Pydantic models

services - Database services

static - Static files

templates - Contains files for each page and partials for all partial pages that are related to the main page of the directory which it is under.

viewmodels - View models for gathering data for pages and partials.

main.py - Main operational file for running FastAPI.

How to run

  • Create virtual environment
  • Activate virtual environment
  • Install requirements pip3 install -r requirements.txt
  • Run project python3 -m uvicorn main:app --reload

    Using Docker

    • Build image docker build -t fast-htmx .
    • Create Database touch sql_app.db
    • Run container docker run -v $(pwd)/sql_app.db:/code/sql_app.db -d --name fast-htmx -p 8000:8000 fast-htmx