首页 > 其他分享 >FastHTML快速入门:服务器渲染超媒体应用的利器

FastHTML快速入门:服务器渲染超媒体应用的利器

时间:2024-11-14 18:45:27浏览次数:3  
标签:INFO rt 超媒体 FastHTML app 应用程序 服务器 data

项目简介

FastHTML是一个Python库,它将Starlette、Uvicorn、HTMX和fastcore的FT "FastTags"融合在一起,用于创建服务器渲染的超媒体应用程序。FastHTML类本身继承自Starlette,并增加了基于装饰器的路由、Beforeware、自动将FT渲染为HTML等功能。

写作FastHTML应用时需记住的事项

  • FastHTML的部分API灵感来源于FastAPI,但它兼容FastAPI语法,也不是用于创建API服务的。
  • FastHTML支持Pico CSS和fastlite sqlite库,但使用这两者都是可选的;可以直接使用sqlalchemy,或者通过fastsql库使用。此外,还支持Surreal和css-scope-inline库,但这两者也是可选的。
  • FastHTML兼容JS原生Web组件和任何原生JS库,但不支持React、Vue或Svelte。
  • 使用serve()来运行uvicorn(不需要if __name__ == "__main__",因为它是自动的)。
  • 当响应需要标题时,使用Titled;注意,它已经将子元素包裹在Container中,并已包含元标题和H1元素。

开发者快速入门指南

安装

pip install python-fasthtml

最小应用示例

一个最小的FastHTML应用程序如下所示:
main.py

from fasthtml.common import *
app, rt = fast_app()
@rt("/")
def get():
    return Titled("FastHTML", P("让我们开始吧!"))
serve()

第1行:我们导入了快速开发所需的内容!为了方便起见,FastHTML精心挑选的一些函数和其他Python对象被引入到我们的全局命名空间中。
第3行:我们使用fast_app()实用函数实例化一个FastHTML应用程序。这为我们提供了许多非常有用的默认设置,我们将在教程后面利用它们。
第5行:我们使用rt()装饰器告诉FastHTML,当用户在浏览器中访问/时应该返回什么。
第6行:我们通过定义一个名为get()的视图函数,将此路由连接到HTTP GET请求。
第7行:一个由Python函数调用组成的树,返回编写一个格式正确的网页所需的所有HTML。你很快就会看到这种方法的强大之处。
第9行:serve()实用程序使用名为uvicorn的库配置并运行FastHTML。
运行代码:

python main.py

终端将显示如下内容:

INFO:     Uvicorn运行在http://0.0.0.0:5001(按CTRL+C退出)
INFO:     使用WatchFiles启动了重载器进程[58058]
INFO:     启动了服务器进程[58060]
INFO:     等待应用程序启动。
INFO:     应用程序启动完成。

打开浏览器,访问127.0.0.1:5001确认FastHTML正在运行。

注意

尽管一些代码审查工具和开发者可能会对通配符导入表示担忧,但在这里它是经过设计的,并且非常安全。FastHTML非常谨慎地导出fasthtml.common中的对象。如果你觉得不舒服,可以单独导入你需要的对象,尽管这样做会使代码更加冗长且不易阅读。

如果你想了解更多关于FastHTML如何处理导入的信息,我们在这里进行了介绍:为什么使用导入

最小图表应用示例

Script函数允许你包含JavaScript。你可以使用Python生成JS或JSON的部分内容,如下所示:

import json
from fasthtml.common import * 
app, rt = fast_app(hdrs=(Script(src="https://cdn.plot.ly/plotly-2.32.0.min.js"),))
data = json.dumps({
    "data": [{"x": [1, 2, 3, 4],"type": "scatter"},
            {"x": [1, 2, 3, 4],"y": [16, 5, 11, 9],"type": "scatter"}],
    "title": "FastHTML中的Plotly图表",
    "description": "这是一个演示仪表板",
    "type": "scatter"
})
@rt("/")
def get():
  return Titled("图表演示", Div(id="myDiv"),
    Script(f"var data = {data}; Plotly.newPlot('myDiv', data);"))
serve()

以上就是FastHTML的快速入门指南,希望对你有所帮助!

标签:INFO,rt,超媒体,FastHTML,app,应用程序,服务器,data
From: https://blog.csdn.net/weixin_32759777/article/details/143697164

相关文章

  • 【TencentOS Server】腾讯云服务器上安装 Nginx 的详细步骤
    使用hostnamectl命令查询服务器信息1.安装EPEL仓库EPEL(ExtraPackagesforEnterpriseLinux)是一个为RHEL和CentOS提供额外软件包的仓库,TencentOSServer作为一个RHEL类的发行版,也可以使用这个仓库。首先安装EPEL仓库:sudoyuminstallepel-release-y2.......
  • 【HAProxy09】企业级反向代理HAProxy高级功能之压缩功能与后端服务器健康性监测
    HAProxy高级功能介绍HAProxy高级配置及实用案例压缩功能对响应给客户端的报文进行压缩,以节省网络带宽,但是会占用部分CPU性能建议在后端服务器开启压缩功能,而非在HAProxy上开启压缩注意:默认Ubuntu的包安装nginx开启压缩功能配置选项compressionalgo<algorithm>.......
  • 怎样选择合适的服务器租用呢?
    在数字化时代当中,企业选择合适的服务器租用是至关重要的,服务器是承载着网站和数据存储的主要核心,服务器的稳定性会影响到网站的访问速度和用户的体验感,本文就从几个方面来探讨怎样选择合适的服务器租用吧!首先企业要确定所需要的服务器类型,服务器有虚拟专用服务器和独立服务器......
  • 服务器集群的适用场景有哪些?
    服务器作为互联网中重要的网络设备,能够帮助企业确保网站的稳定性,而服务器集群则是由两台或者是多台服务器组成的,并且通过高速网络连接,协同工作来提供强大的计算资源和服务能力,可以用于多种应用场景当中。服务器集群中的高可用性,会让系统尽量减少停机时间的能力,当某台服务器发......
  • 智慧园区算法视频分析服务器垃圾桶溢满园区算法详解及应用
    在数字化转型的浪潮中,视频监控技术已成为各行各业提升安全管理、优化运营效率的重要工具。特别是对于城管、环卫、教育、水利、园区、小区等多样化的应用场景,一个集成化、智能化的视频监控解决方案显得尤为关键。智慧园区算法视频分析服务器不仅能够提供高清视频监控接入,还能进行......
  • 云服务器双十一活动火爆开启中
    云服务器双11活动火爆开启中[腾讯云] 2核2G云服务器低至68元/年https://curl.qcloud.com/xgsbEbOF云产品特惠福利热卖中https://curl.qcloud.com/74iJUr08跨境电商业务扬帆出海https://curl.qcloud.com/b9muz7PB游戏服务器专属优惠https://curl.qcloud.com/qBtwesxm[京东云]2核2G......
  • Linux 服务器迁移步骤
    LearnhowtomigrateyourLinuxVPSfromanoldservertoanewonewiththisstep-by-stepguide.Discoveressentialtechniques,tools,andbestpracticesforasmoothservermigration.WhenitcomestomigratingyourVPS,therearenumerousapproachesav......
  • navicat连接远程服务器docker的mysql容器时连不上报错
    报错:1130-HostxxxisnotallowedtoconnecttothisMySQLserver1.原因是root账户没有远程访问权限,先进mysql容器dockerexec-it你的容器id/bin/bash2.连接数据库,输入你的密码mysql-uroot-p3.切换到mysql数据库usemysql;4.更新用户表:(其中%的意思是允许所有的......
  • 在云服务器搭建 GitLab
    操作场景GitLab是使用Ruby开发的开源版本管理系统,以Git作为代码管理工具并实现自托管的Git项目仓库,可通过Web界面访问公开或私人的项目。本文介绍如何在腾讯云云服务器上安装并使用GitLab。示例版本GitLab:社区版14.6.2本文使用的云服务器配置如下:vCPU:2核内存:4......
  • 通过 AWR报告查看oracle 数据库服务器的负载(load average)异常高的原因
    要诊断Oracle数据库服务器的负载(loadaverage)异常高的原因,通过AWR(AutomaticWorkloadRepository)报告可以帮助你识别潜在的瓶颈或负载源。AWR报告提供了数据库的详细性能数据,涵盖了系统负载、SQL执行、I/O性能、内存使用等多方面的信息。以下是通过AWR报告查看和诊断高负......