当前位置: 首页 > news >正文

FastHTML快速入门:调试模式和 URL中的变量

调试模式

FastHTML基于FastAPI友好的装饰器模式来指定URL,并添加了额外功能:
main.py

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

第5行:第5行的“/” URL是项目的首页。这可以通过访问127.0.0.1:5001来找到。
第9行:如果用户访问127.0.0.1:5001/hello,项目将找到第9行的“/hello” URL。

小贴士

看起来get()被定义了两次,但实际上并非如此。每个用rt装饰的函数都是完全独立的,并且被注入到路由器中。我们不是在模块的命名空间(locals())中调用它们。相反,我们使用rt装饰器将它们加载到路由机制中。
你可以做更多的事情!继续阅读,了解我们如何使URL的部分内容动态化。

URL中的变量

@rt("/{name}/{age}")
def get(name: str, age: int):return Titled(f"你好 {name.title()}, 年龄 {age}")
serve()

第5行:我们指定了两个变量名,nameage
第6行:我们定义了两个与变量同名的函数参数。你会注意到我们指定了要传递的Python类型。
第7行:我们在项目中使用这些函数。
尝试访问这个地址:127.0.0.1:5001/uma/5。你应该会看到一个页面显示:

“你好 Uma, 年龄 5”。

如果我们输入了错误的数据会发生什么?

127.0.0.1:5001/uma/5这个URL之所以有效,是因为5是一个整数。如果我们输入的不是整数,比如127.0.0.1:5001/uma/five,那么FastHTML将返回一个错误,而不是网页。

FastHTML URL路由支持更复杂的类型

我们这里提供的两个例子使用了Python内置的strint类型,但你也可以使用自己的类型,包括更复杂的类型,比如由attrs、pydantic甚至sqlmodel等库定义的类型。

http://www.lryc.cn/news/481996.html

相关文章:

  • C++高级编程(8)
  • AUTOSAR_EXP_ARAComAPI的7章笔记(2)
  • 【C++】 C++游戏设计---五子棋小游戏
  • 仿RabitMQ 模拟实现消息队列项目开发文档2(个人项目)
  • 李佳琦回到巅峰背后,双11成直播电商分水岭
  • 云计算在教育领域的应用
  • C语言 | Leetcode C语言题解之第543题二叉树的直径
  • 6、If、While、For、Switch
  • 萤石设备视频接入平台EasyCVR多品牌摄像机视频平台海康ehome平台(ISUP)接入EasyCVR不在线如何排查?
  • 【多线程】线程池如何知道一个线程的任务已经完成
  • Transformer介绍(一)
  • [CKS] TLS Secrets创建与挂载
  • java双向链表解析实现双向链表的创建含代码
  • 【Kafka-go】golang的kafka应用
  • redis:set集合命令,内部编码,使用场景
  • 45期代码随想录算法营总结
  • 深入理解Java中的instanceof关键字及接口新特性:方法实现的可能性
  • 【python中如果class没有self会怎行】
  • 【算法】(Python)动态规划
  • EasyExcel 学习之 导出 “提示问题”
  • 应用系统开发(3)低功耗四运算放大器LM324N
  • 基于微信小程序的电商平台+LW示例参考
  • [Android] Graphic Buffer 的申请
  • 【大数据学习 | HBASE高级】storeFile文件的合并
  • 多平台编包动态引入依赖的解决方案
  • [单例模式]
  • 速盾:游戏盾的功能和原理详解
  • Spleeter:音频分离的革命性工具
  • 【笔记】自动驾驶预测与决策规划_Part6_不确定性感知的决策过程
  • openresty入门教程:access_by_lua_block