跳转到主要内容

一个用于处理HTMX的Flask扩展。

项目描述

https://badge.fury.io/py/flask-htmx.svg Documentation Status https://codecov.io/gh/edmondchuc/flask-htmx/branch/main/graph/badge.svg?token=K6YB3PB33T https://img.shields.io/badge/code%20style-black-000000.svg https://img.shields.io/badge/License-MIT-red.svg https://static.pepy.tech/personalized-badge/flask-htmx?period=week&units=international_system&left_color=grey&right_color=blue&left_text=downloads/week https://static.pepy.tech/personalized-badge/flask-htmx?period=month&units=international_system&left_color=grey&right_color=blue&left_text=downloads/month https://static.pepy.tech/personalized-badge/flask-htmx?period=total&units=international_system&left_color=grey&right_color=blue&left_text=downloads

一个用于处理HTMX的Flask扩展。

文档:https://flask-htmx.readthedocs.io

快速入门

使用pip安装扩展。

pip install flask-htmx

或者你可能使用Poetry。

poetry add flask-htmx

HTMX请求

您可以通过构造函数通过传递Flask app 对象来注册HTMX对象。

htmx = HTMX(app)

或者您可以使用HTMX.init_app()来注册HTMX对象。

htmx = HTMX()
htmx.init_app(app)

一个最小的工作示例。

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")

上述示例检查请求是否来自HTMX。如果htmx评估为True,则它是HTMX请求,否则为False

这允许您在是HTMX请求时返回部分HTML,在是普通浏览器请求时返回完整页面HTML。

Flask-HTMX还支持在视图请求期间检查HTMX头。例如,检查HTMX请求的浏览器当前URL。

@app.route("/")
def home():
    current_url = htmx.current_url
    return render_template("index.html", current_url=current_url)

其他HTMX请求头也可用。见https://htmx.npmjs.net.cn/reference/#request_headers

HTMX响应

您可能对将 htmx 响应头 添加到您的响应中感兴趣。可以使用 flask_htmx.make_response 实现。例如,而不是

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

您可以进行以下操作

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"},
    )

文档

访问完整文档

开发

安装

poetry install

运行测试

poetry run pytest

覆盖率

poetry run pytest --cov=flask_htmx tests/

文档

sphinx-autobuild docs docs/_build/html

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码发行版

flask_htmx-0.4.0.tar.gz (5.8 kB 查看散列值)

上传时间 源代码

构建发行版

flask_htmx-0.4.0-py3-none-any.whl (6.8 kB 查看散列值)

上传时间 Python 3

支持者: