这个存储库是我在编写使用 htmx 的 Django 项目时使用和开发的模式的粗略汇编,并带有完整的示例代码。
这些文档旨在在 GitHub 上查看:https://github.com/spookylukey/django-htmx-patterns/,如果需要,代码可以在本地运行。
我的目标是记录和分享:
除非另有说明,所提供的代码仅依赖于 Django 和 htmx。我不会将其打包为一个库。相反,它被发布到公共领域,并且鼓励您根据自己的需要复制粘贴它。 (请参阅“方法”文档了解原因)。
有一些 Django 包为此处提到的某些内容提供了快捷方式,例如 django-htmx,但为了清楚起见,我不会使用其中任何一个。
这是一项正在进行的工作,我会尽力保持最新状态。欢迎 PR。
此存储库中最大的贡献是:
模板中带有块选择的内联部分。
这种模式允许您将页面的各个部分保持在一起,以实现良好的“行为局部性”,并避免视图代码必须了解有关正在使用哪些模板片段/部分的任何信息。 htmx 的模板代码更改通常是将模板的某些部分包装在 Django 模block
中并添加标准 htmx 属性。 htmx 的视图代码更改通常只是在视图函数上添加一个装饰器: @for_htmx(use_block_from_params=True)
。
这种模式对 Django 中的 htmx 可用性产生了巨大的影响。
逐字段 htmx 表单验证的完整示例,同时保留 Django 的表单抽象及其所有优点。
做模态的好模式
姜戈
htmx(请参阅基本模板以获取建议的安装文档)
这里最好的模式需要 django-render-block:
pip 安装 django-render-block
我的示例代码包括悲伤和快乐的怪物,可以拥抱或踢它们来改变它们的状态。请注意,我不赞成踢怪物,也不建议拥抱它们。
代码文件夹中有一个演示应用程序,其中包含文档中所有内容的完整工作示例。
要在本地安装,请创建并激活 virtualenv,然后执行以下操作:
光盘代码 pip install -r 要求.txt python 管理.py 迁移 python 管理.py runserver
非常欢迎您的反馈!如果您喜欢此存储库,请为其加注星标,并请在讨论中分享想法。
其他一些好的 htmx 资源:
如果您喜欢这个存储库,我的其他一些资源也可能会对您有所帮助: