用途:为 Databricks Apps 构建 Python 后端。该技能定位为 Python 后端替代方案;新建 Databricks App 的默认方案是 databricks-apps(AppKit,Node.js + TypeScript + React SDK),仅当用户明确要求 Python 后端、扩展已有 Python 应用或团队只用 Python 时,才使用本技能。
主要能力与框架选择:默认 FastAPI,适合异步 API、自动生成 OpenAPI 文档、JSON 服务类应用,app.yaml 命令为 ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "8000"];Flask 适合自定义 REST API、轻量应用与 webhook,部署用 Gunicorn;Dash 适合生产仪表盘与 BI,需用 dash-bootstrap-components;Streamlit 适合快速原型与数据科学应用,数据库连接需用 @st.cache_resource;Gradio 适合 ML 演示与聊天界面;Reflex 适合无 JavaScript 的全栈 Python 应用。
必要步骤与规则:须确认框架;用 SDK Config() 做认证,禁止硬编码 token;资源用 app.yaml 的 valueFrom,禁止硬编码资源 ID;Flask 用 Gunicorn、FastAPI 用 uvicorn 部署,不用开发服务器;需确定授权策略(应用认证、用户认证或两者)、应用资源、后端数据策略(SQL 仓库、Lakebase 或 SDK)与部署方式(CLI 或 DABs)。参考文档涵盖授权、应用资源、各框架模式、部署、Lakebase 与 CLI 命令。
架构与连接:典型目录含 app.py、models.py、backend.py、requirements.txt、app.yaml、README.md;可通过 USE_MOCK_BACKEND 切换真实/模拟后端;SQL 仓库连接使用 databricks.sdk.core.Config 与 databricks.sql,从环境变量读取仓库 ID。
平台限制:运行时为 Python 3.11、Ubuntu 22.04,默认 2 vCPU、6 GB 内存;预装 Dash、Streamlit、Gradio、Flask、FastAPI、Shiny;自定义包需写入 requirements.txt;应用须绑定 DATABRICKS_APP_PORT(默认 8000),不得用 8080;psycopg2/asyncpg 未预装,使用 Lakebase 必须加入 requirements.txt。官方文档见 https://docs.databricks.com/dev-tools/databricks-apps/。