Hello Coders!
This article presents an open-source sample crafted with Flask and HTMLx using a simple Bootstrap 5
one-page design. For newcomers, Flask is a leading web framework powered by Python and HTMLx is a lightweight JS utility library that allows accessing AJAX, CSS Transitions, WebSockets, and Server-Sent Events directly in HTML. This simple stack might help beginners
code full-stack projects without being a JS guru for the frontend layer.
Thanks for reading!
- π Flask HTMLx Sample - source code
- π Free Support via Email and Discord.
β¨ How to use the sample
To get started with the application in the machine
-
Python3
- Make sure python3 and highr=er is installed on your system before proceeding to installation instructions. -
Git
- Download and install Git.OSX and Linux come preinstalled with Git. Download and install Git on your windows machine if not installed yet. -
Pip
- We will use pip to install the required packages to be used in the project.
π Step 1 - cloning the repository.
$ git clone https://github.com/app-generator/sample-flask-htmlx.git
π Step 2 - Prepare Environment (create virtual environment)
$ # Virtualenv modules installation (Unix based systems)
$ virtualenv env
$ source env/bin/activate
$
$ # Virtualenv modules installation (Windows based systems)
$ # virtualenv env
$ # .\env\Scripts\activate
π Step 3 - Install Dependencies
$ # Install requirements
$ pip3 install -r requirements.txt
π Step 4 - Create Database & Tables
$ flask shell # launch Flask Shell
>>>
>>> from app import db
>>> db.create_all()
π Step 5 - Start the APP
$ flask run
The app should be up & running at the address http://localhost:5000
β¨ HTMLx
All forms managed by the app use HTMLx directives. Here is the Login Form Source Code and used HTMLx directives:
<form hx-swap="outerHTML"
hx-post="{{ url_for('auth.signin') }}"
hx-push-url="true"
hx-target=".content"
class="p-5 bg-white shadow mh-100 col-sm-8 col-md-6 col-lg-4" novalidate >
<p class="h3 text-center p-2">SignIn</p>
<!-- Truncated content -->
<div class="form-input p-1">
{{form.email.label}}
{{form.email(class_="form-control")}}
</div>
<div class="form-input p-1">
{{form.password.label}}
{{form.password(class_="form-control")}}
</div>
<button class="btn p-2 px-3 rounded btn-primary h1" type="submit">Sign In</button>
</form>
Thanks for reading!
For more resources, feel free to access:
- π Flask Charts.JS via Flask-RestX - With Sample
- π Django Charts via DRF - Step-by-step tutorial
Top comments (5)
HTMLx β¨β¨
Thanks for writing & for the free sample. Can you provide more info (pro & cons) for HTMLx?
Ty for reading!
In a single sentence
htmx gives you access to AJAX, CSS Transitions, WebSockets and Server Sent Events directly in HTML
(copy/pasted from HTMLx help).HTMLx basically simplifies the HTML / Backend communication using
directives
instead of usingJS
. Some developers dislike coding JS and prefer to use HTMLx as an alternative.ππ
HTMLx looks promising ..
ππ