关于 server-side-rendering
server-side-rendering 是用于构建服务器端渲染应用的技能,使用模板和数据生成 HTML。内容包括 Python、Node.js 和 Ruby 框架示例,以及缓存和渲染实践。
主要功能
- 01通过模板在服务器端渲染 HTML
- 02Flask、Django 和 Express 示例
- 03模板继承与过滤器
- 04缓存与渲染优化
- 05输入验证与清理
适用场景
- 01构建注重 SEO 的 Web 应用
- 02为传统 Web 应用渲染 HTML
- 03创建管理仪表板
- 04生成邮件模板
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ aj-geddes/ useful-ai-prompts --skill server-side-rendering安装后在 Claude Code 中输入/server-side-rendering确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/caching-and-performance.mddjango-template-examples.mddjango-templates.mdejs-template-examples.mdflask-with-jinja2-templates.mdjinja2-template-examples.mdnodejsexpress-with-ejs-templates.mdscripts/validate-schema.shtemplates/migration-template.sql详细介绍
服务端渲染
目录
概述
使用现代模板引擎、视图层和数据驱动的 HTML 生成,构建服务端渲染应用,并在 Python、Node.js 和 Ruby 框架中实现缓存、流式传输和性能优化。
适用场景
- 构建传统 Web 应用
- 在服务端渲染 HTML
- 实现利于 SEO 的应用
- 创建实时更新的页面
- 构建管理后台
- 实现电子邮件模板
快速开始
最小可运行示例:
# app.py
from flask import Flask, render_template, request, jsonify
from datetime import datetime
app = Flask(__name__)
# Custom Jinja2 filters
@app.template_filter('currency')
def format_currency(value):
return f"${value:.2f}"
@app.template_filter('date_format')
def format_date(date_obj):
return date_obj.strftime('%Y-%m-%d %H:%M:%S')
@app.context_processor
def inject_globals():
"""Inject global variables into templates"""
return {
'app_name': 'My App',
'current_year': datetime.now().year,
'support_email': '[email protected]'
}
# routes.py
// ... (see reference guides for full implementation)
参考指南
references/ 目录中的详细实现:
| 指南 | 内容 |
|---|---|
| Flask with Jinja2 Templates | 使用 Jinja2 模板的 Flask |
| Jinja2 Template Examples | Jinja2 模板示例 |
| Node.js/Express with EJS Templates | 使用 EJS 模板的 Node.js/Express |
| EJS Template Examples | EJS 模板示例 |
| Caching and Performance | 缓存与性能 |
| Django Template Examples | Django 模板示例 |
| Django Templates | Django 模板 |
最佳实践
✅ 应该做
- 使用模板继承,避免重复代码
- 为频繁渲染的页面实现缓存
- 使用模板过滤器进行格式化
- 分离视图与模板的职责
- 验证并清理所有用户输入
- 使用上下文处理器提供全局变量
- 实现适当的分页
- 合理使用条件渲染
- 缓存开销较大的查询
- 优化模板渲染
❌ 不应该做
- 在模板中编写业务逻辑
- 在模板中使用无界循环
- 在模板中执行数据库查询
- 未经清理就信任用户输入
- 过度嵌套模板继承
- 使用过长的模板文件
- 在模板中渲染敏感数据
- 忽视模板缓存机会
- 过度使用全局变量
- 在一个模板中混杂多种职责
评论
支持 Markdown