textual-serve
现在每个 Textual 应用都是一个网络应用。
只需3行代码,任何 Textual 应用都可以在浏览器中运行。
入门
首先,安装(或升级)Textual。
然后从 PyPI 安装 textual-serve
:
pip install textual-serve
创建服务器
首先导入 Server 类:
from textual_serve.server import Server
然后创建一个 Server
实例,并传入启动 Textual 应用的命令:
server = Server("python -m textual")
该命令可以是任何你在 shell 中输入的内容,只要它能运行一个 Textual 应用即可。
最后,调用 serve
方法:
server.serve()
现在你可以点击终端中的链接,在浏览器中运行你的应用。
总结
运行此代码,访问 http://localhost:8000
from textual_serve.server import Server
server = Server("python -m textual")
server.serve()
配置
Server
类有以下参数:
参数 | 描述 |
---|---|
command | 启动 Textual 应用的 shell 命令。 |
host | Web 应用的主机(默认为 "localhost")。 |
port | Web 应用的端口(默认为 8000)。 |
title | 加载时在 Web 应用中显示的标题,保留为 None 则使用命令。 |
public_url | 如果服务器在代理后面,则为公共 URL。None 表示使用本地 URL。 |
statics_path | 静态文件夹的路径,相对于 server.py。默认使用模块中的目录。 |
templates_path | 模板文件夹的路径,相对于 server.py。默认使用模块中的目录。 |
Server.serve
方法接受一个 debug
参数。
设置为 True
时,将启用 textual devtools。
它是如何工作的?
当你访问应用 URL 时,服务器会在子进程中启动你的应用实例,并通过 websocket 与之通信。
这意味着你可以在系统的所有 CPU 上运行多个 Textual 应用。
请注意,Textual-serve 使用自定义协议与 Textual 应用通信。 它不是简单地在浏览器中暴露一个 shell。 恶意用户无法执行应用作者不希望执行的任何操作。
另请参阅
另请参阅 textual-web,它可以在公共 URL 上提供 Textual 应用。
你可以将本项目视为 Textual-web 的自托管等效版本。