一个 html 的包装器
项目描述
凌乱的汤
它是什么?
MessySoup是 html 元素的 python 包装器。虽然还有很长的路要走,但主要目标是能够直接从 python 构建一个 wesbite,包括前端和后端。 MessySoup与其他前端框架和库类似,它允许您构建可重用的代码块,而不必在每个网页中定义它们。
有什么限制?
互动性
目前,您仍然必须使用 javascript 或 WASM(Web 程序集)编写所有交互性。但是,我一直密切关注pyodide的发展。在他们的 github 页面上打开了许多问题,旨在简化一些看起来很有希望的导入方法。
pyodide 尚未与该项目集成的原因之一是,对于大多数 python 开发人员来说,将自定义包加载到虚拟文档中的过程是不直观的,因为您首先需要构建一个 python 轮,然后再使用 mircopip 安装它并成为能够使用它。该构建可以添加到该项目中,但我们将拭目以待,看看 pyodide 团队首先进入的方向。
活动
由于可用事件的数量庞大,将每个事件添加为每个元素的争论是没有意义的。目前,所有事件都需要在 JS 中处理或使用 pyodide js 绑定。
文件格式
将元素写入文件中的磁盘后,您会注意到该文件的格式不正确。这是故意的。要在 VS Code 中修复,只需右键单击文件并单击format document
我该如何使用它?
要开始使用,请使用pip install messysoup. 这个库主要是基于功能的,每个 html 标签都有自己的功能。如果 html 标记或属性名称与内置函数或保留字(例如openand )发生冲突dir,则会在 python 等效项的末尾添加下划线。因此,open成为open_和dir成为dir_。
每个 python 标签都有三种主要类型的属性:
- 内容(带有自结束标签的 exeptoin,例如
br)。 - 标记特定属性,例如
hreffora。 - 全局属性(某些标签除外,例如
br)。
下面的示例使用两个常见的标签,一个段落和一个超链接。一种使用全局标签,一种使用非全局标签。
from messysoup.messysoup import p
content = ("Lorem ipsum dolor sit amet, consectetur adipiscing elit. "
"Aliquam sapien ligula, finibus sed ullamcorper vitae, dignissim ac turpis. "
"Nulla et consequat felis, vel aliquet libero. Fusce dolor nibh, sodales ut egestas eget, semper at sem. "
"Pellentesque sit amet massa tincidunt, consectetur purus id, molestie arcu. "
"Fusce in odio quis enim pulvinar condimentum. "
"Praesent dictum scelerisque ornare. "
"Morbi eget nisi ac lacus ullamcorper pharetra ut a ligula. "
"Aliquam porttitor commodo magna, in malesuada elit sagittis ac.")
my_paragraph = p(content=content, id='lorem-ipsum')
my_link = a("The text of the hyperlink", href="https://www.github.com")
为了从中创建文档,请将其添加到MessySoup类中。
from messysoup.messysoup import MessySoup, p
document = MessySoup("filename")
my_paragraph = p("Contents of the paragraph")
document.add(my_paragraph)
document.write_file()
创建表
还有一种内置方法可以从 python 数据结构创建 html 表。当前支持的结构:
- 清单清单
- 字典列表
- 字典
- 熊猫df。
为此,只需将您的结构传递给create_table(). 当前所有表格都将返回页眉和页脚。如果没有单独传入页脚,则将使用最后一个索引。如果没有单独传入标头,将使用以下内容:
- Pandas df:列标题。
- 字典:钥匙。
- 列表列表:父列表的索引 0。
这将创建一个基本的 html 表,其中所有标签都将缺少属性。要将属性添加到标签,请使用以下功能的任意组合;他们返回原始表的修改副本。 add_all_table_attributes()会将指定的属性添加到所有标签,而所有其他属性会将它们添加到特定标签。
add_all_table_attributes()add_table_attributes()add_trow_attributes()add_tcell_attributes()add_theader_attributes()add_th_attributes()add_tbody_attributes()add_tfooter_attributes()
全局参数
大多数属性允许全局参数。以下是每个争论的快速参考。对于标签特定的项目,请参阅 MDN 文档。
accesskey: 激活元素焦点的快捷键。class:指定元素的类名。contenteditable:确定元素的内容是否可编辑。data_key: 将附加到data-标签中。用于存储页面或应用程序私有的自定义数据。data_value:data-标签的值。dir_:指定文本的方向。draggable:指定元素是否可拖动。hidden:指定元素是否相关。id: 元素的唯一 ID。lang: 元素的语言。spellcheck:指定是否应检查拼写和语法。style: 添加内联 CSS。tabindex: 元素的 Tab 键顺序。title: 关于元素的额外信息。translate: 是否应该翻译元素。
使用 Pyodide
已为 pyodide 添加了实验支持。通过使用from messysoup.pyodide.run_python import run_python. 调用run_python()将:
- 解析调用模块的 python 文件。
- 警告任何非标准或不受支持的 python 导入(pyodide 项目不支持的那些)
- 删除自称为 import (包括现在的 MessySoup)
.js使用 pyodide 样板创建一个新文件。这会默认调用最新的 CDN(当前为 18.1),并且当前与分发服务不兼容。
要使用 pyodide 的js模块,您需要手动将其输入到新.js文件中,否则 python 解释器会出错。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。