Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
########## Flask-HTMX ##########
.. image:: https://badge.fury.io/py/flask-htmx.svg :target: https://badge.fury.io/py/flask-htmx
.. image:: https://readthedocs.org/projects/flask-htmx/badge/?version=latest :target: https://flask-htmx.readthedocs.io/en/latest/?badge=latest :alt: Documentation Status
.. image:: https://codecov.io/gh/edmondchuc/flask-htmx/branch/main/graph/badge.svg?token=K6YB3PB33T :target: https://codecov.io/gh/edmondchuc/flask-htmx
.. image:: https://img.shields.io/badge/code%20style-black-000000.svg :target: https://github.com/psf/black
.. image:: https://img.shields.io/badge/License-MIT-red.svg :target: https://github.com/edmondchuc/flask-htmx/blob/main/LICENSE
.. image:: https://static.pepy.tech/personalized-badge/flask-htmx?period=week&units=international_system&left_color=grey&right_color=blue&left_text=downloads/week :target: https://pepy.tech/project/flask-htmx
.. image:: https://static.pepy.tech/personalized-badge/flask-htmx?period=month&units=international_system&left_color=grey&right_color=blue&left_text=downloads/month :target: https://pepy.tech/project/flask-htmx
.. image:: https://static.pepy.tech/personalized-badge/flask-htmx?period=total&units=international_system&left_color=grey&right_color=blue&left_text=downloads :target: https://pepy.tech/project/flask-htmx
A Flask extension to work with HTMX.
Documentation: https://flask-htmx.readthedocs.io
.. quickstart-startblock
Install the extension with pip.
.. code-block:: bash
pip install flask-htmx
Or perhaps you use Poetry.
.. code-block:: bash
poetry add flask-htmx
You can register the HTMX object by passing the Flask
:code:app
object via the constructor.
.. code-block:: python
htmx = HTMX(app)
Or you can register the HTMX object using
HTMX.init_app() <https://flask-htmx.readthedocs.io/en/latest/flask_htmx.htmx.html#flask_htmx.htmx.HTMX.init_app>
_.
.. code-block:: python
htmx = HTMX()
htmx.init_app(app)
A minimal working example.
.. code-block:: python
from flask import Flask, render_template
from flask_htmx import HTMX
app = Flask(__name__)
htmx = HTMX(app)
@app.route("/")
def home():
if htmx:
return render_template("partials/thing.html")
return render_template("index.html")
The above example checks whether the request came
from HTMX or not. If :code:htmx
evaluates to
True <https://docs.python.org/3/library/constants.html#True>
, then it was a HTMX request, else
False <https://docs.python.org/3/library/constants.html#False>
.
This allows you to return a partial HTML when it's a HTMX request or the full page HTML when it is a normal browser request.
Flask-HTMX also supports checking for HTMX headers during a request in the view. For example, check the current URL of the browser of a HTMX request.
.. code-block:: python
@app.route("/")
def home():
current_url = htmx.current_url
return render_template("index.html", current_url=current_url)
Other HTMX request headers are also available. See https://htmx.org/reference/#request_headers.
You might be interested on adding
htmx response headers <https://htmx.org/reference/#response_headers>
_ to your response.
Use :code:flask_htmx.make_response
for that. For example, instead of:
.. code-block:: python
import json
from flask import make_response
from my_app import app
@app.route("/hola-mundo")
def hola_mundo():
body = "Hola Mundo!"
response = make_response(body)
response.headers["HX-Push-URL"] = "false"
trigger_string = json.dumps({"event1":"A message", "event2":"Another message"})
response.headers["HX-Trigger"] = trigger_string
return response
You can do:
.. code-block:: python
from flask_htmx import make_response
from my_app import app
@app.route("/hola-mundo")
def hola_mundo():
body = "Hola Mundo!"
return make_response(
body,
push_url=False,
trigger={"event1": "A message", "event2": "Another message"},
)
.. quickstart-endblock
Visit the full documentation <https://flask-htmx.readthedocs.io>
_.
.. code-block:: bash
poetry install
.. code-block:: bash
poetry run pytest
.. code-block:: bash
poetry run pytest --cov=flask_htmx tests/
.. code-block:: bash
sphinx-autobuild docs docs/_build/html
FAQs
A Flask extension to work with HTMX.
We found that flask-htmx demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.