ホーム/后端开发/python-backend
P

python-backend

by @jiatasticv
4.8(62)

FastAPI、SQLAlchemy、Upstashに基づいた本番レベルのPythonバックエンド開発パターンを提供し、REST APIとJWT/OAuth2認証の構築をサポートします。

PythonDjangoFlaskFastAPIREST APIGitHub
インストール方法
npx skills add jiatastic/open-python-skills --skill python-backend
compare_arrows

Before / After 効果比較

1
使用前

ゼロから本番環境レベルのPythonバックエンドを構築するには、フレームワーク、ORM、認証ソリューションを自分で統合する必要があり、時間がかかり、潜在的な問題を引き起こしやすいです。

使用後

FastAPI、SQLAlchemyベースの本番環境レベルのバックエンドパターンを取得し、REST APIを迅速に構築し、JWT/OAuth2認証をサポートすることで、より効率的な開発が可能になります。

description SKILL.md

python-backend

python-backend

Production-ready Python backend patterns for FastAPI, SQLAlchemy, and Upstash.

When to Use This Skill

  • Building REST APIs with FastAPI

  • Implementing JWT/OAuth2 authentication

  • Setting up SQLAlchemy async databases

  • Integrating Redis/Upstash caching and rate limiting

  • Refactoring AI-generated Python code

  • Designing API patterns and project structure

Core Principles

  • Async-first - Use async/await for I/O operations

  • Type everything - Pydantic models for validation

  • Dependency injection - Use FastAPI's Depends()

  • Fail fast - Validate early, use HTTPException

  • Security by default - Never trust user input

Quick Patterns

Project Structure

src/
├── auth/
│   ├── router.py      # endpoints
│   ├── schemas.py     # pydantic models
│   ├── models.py      # db models
│   ├── service.py     # business logic
│   └── dependencies.py
├── posts/
│   └── ...
├── config.py
├── database.py
└── main.py

Async Routes

# BAD - blocks event loop
@router.get("/")
async def bad():
    time.sleep(10)  # Blocking!

# GOOD - runs in threadpool
@router.get("/")
def good():
    time.sleep(10)  # OK in sync function

# BEST - non-blocking
@router.get("/")
async def best():
    await asyncio.sleep(10)  # Non-blocking

Pydantic Validation

from pydantic import BaseModel, EmailStr, Field

class UserCreate(BaseModel):
    email: EmailStr
    username: str = Field(min_length=3, max_length=50, pattern="^[a-zA-Z0-9_]+$")
    age: int = Field(ge=18)

Dependency Injection

async def get_current_user(token: str = Depends(oauth2_scheme)) -> User:
    payload = decode_token(token)
    user = await get_user(payload["sub"])
    if not user:
        raise HTTPException(401, "User not found")
    return user

@router.get("/me")
async def get_me(user: User = Depends(get_current_user)):
    return user

SQLAlchemy Async

from sqlalchemy.ext.asyncio import AsyncSession, async_sessionmaker, create_async_engine

engine = create_async_engine(DATABASE_URL, pool_pre_ping=True)
SessionLocal = async_sessionmaker(engine, expire_on_commit=False)

async def get_session() -> AsyncGenerator[AsyncSession, None]:
    async with SessionLocal() as session:
        yield session

Redis Caching

from upstash_redis import Redis

redis = Redis.from_env()

@app.get("/data/{id}")
def get_data(id: str):
    cached = redis.get(f"data:{id}")
    if cached:
        return cached
    data = fetch_from_db(id)
    redis.setex(f"data:{id}", 600, data)
    return data

Rate Limiting

from upstash_ratelimit import Ratelimit, SlidingWindow

ratelimit = Ratelimit(
    redis=Redis.from_env(),
    limiter=SlidingWindow(max_requests=10, window=60),
)

@app.get("/api/resource")
def protected(request: Request):
    result = ratelimit.limit(request.client.host)
    if not result.allowed:
        raise HTTPException(429, "Rate limit exceeded")
    return {"data": "..."}

Reference Documents

For detailed patterns, see:

Document Content

references/fastapi_patterns.md Project structure, async, Pydantic, dependencies, testing

references/security_patterns.md JWT, OAuth2, password hashing, CORS, API keys

references/database_patterns.md SQLAlchemy async, transactions, eager loading, migrations

references/upstash_patterns.md Redis, rate limiting, QStash background jobs

Resources

Weekly Installs738Repositoryjiatastic/open-…n-skillsGitHub Stars3First SeenJan 24, 2026Security AuditsGen Agent Trust HubPassSocketPassSnykPassInstalled onopencode703codex696gemini-cli695github-copilot689cursor675amp659

forumユーザーレビュー (0)

レビューを書く

効果
使いやすさ
ドキュメント
互換性

レビューなし

統計データ

インストール数1.6K
評価4.8 / 5.0
バージョン
更新日2026年3月17日
比較事例1 件

ユーザー評価

4.8(62)
5
0%
4
0%
3
0%
2
0%
1
0%

この Skill を評価

0.0

対応プラットフォーム

🔧Claude Code
🔧OpenClaw
🔧OpenCode
🔧Codex
🔧Gemini CLI
🔧GitHub Copilot
🔧Amp
🔧Kimi CLI

タイムライン

作成2026年3月17日
最終更新2026年3月17日