{"adoption": {"forks": 296, "observed_at": "2026-09-03T02:15:17.223466+00:00", "stars": 1001}, "canonical_url": "https://ross.abutalabs.com/products/flask-restful-example", "card": {"archived": false, "artifact_type": "learning-resource", "description": "flask后端开发接口示例，利用Flask开发后端API接口。包含基本的项目配置、统一响应、MySQL和Redis数据库操作、定时任务、图片生成、项目部署、用户权限认证、报表输出、无限层级生成目录树、阿里云手机验证码验证、微信授权、Celery、单元测试、Drone等模块。", "domain": ["web-development", "backend", "developer-tools", "tutorials", "apis"], "enriched": true, "function": ["web-framework", "api-framework", "auth", "database", "caching", "testing", "scheduling", "ci-cd", "deployment", "logging", "configuration-management"], "health_score": 20, "homepage": null, "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["qzq1111/flask-restful-example"], "name": "qzq1111/flask-restful-example", "platform": ["python"], "pushed_at": "2024-09-04T09:43:01+00:00", "repo": "qzq1111/flask-restful-example", "stars": 1001, "tags": ["flask", "flask-restful", "celery", "jwt", "sqlalchemy", "redis", "apscheduler", "drone-ci", "example-project", "boilerplate", "docker", "linux", "web-server"], "topics": ["python3", "flask", "flask-restful", "docker", "office", "docker-compose", "flask-api", "flask-celery", "drone", "flask-yaml", "unittest"], "urls": [], "use_cases": ["learn how to build a REST API backend with Flask", "example of JWT authentication in Flask", "Flask project with Docker and Gunicorn deployment setup", "integrate Celery with Flask for background tasks", "Flask unit testing with coverage reports example", "template for Flask + SQLAlchemy + Redis project structure", "set up CI/CD with Drone for a Python backend"], "what_it_is": "A Flask RESTful API example project demonstrating common backend patterns: configuration, unified responses, MySQL/Redis access, JWT auth, scheduled tasks, Celery, report generation, and Docker deployment. It accompanies a Chinese blog series and serves as a reference template for building Flask backends.", "when_to_avoid": ["you need a production framework with active maintenance guarantees rather than an example project", "you use a framework other than Flask", "you need async or modern ASGI-style Python APIs"], "when_to_choose": ["starting a Flask backend and wanting a battle-tested reference structure", "learning common backend patterns like auth, scheduling, and unified responses in Flask", "you want a working Docker deployment setup for Flask"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/flask-restful-example", "repo": "qzq1111/flask-restful-example", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-09-03T02:15:17.223466+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:16:08.731529+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b2d5d3240ee1dbe4b9fdb1284d5e78f73f230fdbaef2a5dd81138ef642e8a5d8", "fetched_at": "2026-09-03T02:15:17.223466+00:00", "kind": "readme", "missing": false, "url": "https://github.com/qzq1111/flask-restful-example"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-09-03T02:15:17.223466+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:16:08.731529+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b2d5d3240ee1dbe4b9fdb1284d5e78f73f230fdbaef2a5dd81138ef642e8a5d8", "fetched_at": "2026-09-03T02:15:17.223466+00:00", "kind": "readme", "missing": false, "url": "https://github.com/qzq1111/flask-restful-example"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:16:08.731529+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b2d5d3240ee1dbe4b9fdb1284d5e78f73f230fdbaef2a5dd81138ef642e8a5d8", "fetched_at": "2026-09-03T02:15:17.223466+00:00", "kind": "readme", "missing": false, "url": "https://github.com/qzq1111/flask-restful-example"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-09-03T02:15:17.223466+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-09-03T02:15:17.223466+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-09-03T02:15:17.223466+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:16:08.731529+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b2d5d3240ee1dbe4b9fdb1284d5e78f73f230fdbaef2a5dd81138ef642e8a5d8", "fetched_at": "2026-09-03T02:15:17.223466+00:00", "kind": "readme", "missing": false, "url": "https://github.com/qzq1111/flask-restful-example"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-09-03T02:15:17.223466+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-09-03T02:15:17.223466+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:16:08.731529+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b2d5d3240ee1dbe4b9fdb1284d5e78f73f230fdbaef2a5dd81138ef642e8a5d8", "fetched_at": "2026-09-03T02:15:17.223466+00:00", "kind": "readme", "missing": false, "url": "https://github.com/qzq1111/flask-restful-example"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-09-03T02:15:17.223466+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-09-03T02:15:17.223466+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-09-03T02:15:17.223466+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:16:08.731529+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b2d5d3240ee1dbe4b9fdb1284d5e78f73f230fdbaef2a5dd81138ef642e8a5d8", "fetched_at": "2026-09-03T02:15:17.223466+00:00", "kind": "readme", "missing": false, "url": "https://github.com/qzq1111/flask-restful-example"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-09-03T02:15:17.223466+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-09-03T02:15:17.223466+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:16:08.731529+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b2d5d3240ee1dbe4b9fdb1284d5e78f73f230fdbaef2a5dd81138ef642e8a5d8", "fetched_at": "2026-09-03T02:15:17.223466+00:00", "kind": "readme", "missing": false, "url": "https://github.com/qzq1111/flask-restful-example"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:16:08.731529+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b2d5d3240ee1dbe4b9fdb1284d5e78f73f230fdbaef2a5dd81138ef642e8a5d8", "fetched_at": "2026-09-03T02:15:17.223466+00:00", "kind": "readme", "missing": false, "url": "https://github.com/qzq1111/flask-restful-example"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:16:08.731529+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b2d5d3240ee1dbe4b9fdb1284d5e78f73f230fdbaef2a5dd81138ef642e8a5d8", "fetched_at": "2026-09-03T02:15:17.223466+00:00", "kind": "readme", "missing": false, "url": "https://github.com/qzq1111/flask-restful-example"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:16:08.731529+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b2d5d3240ee1dbe4b9fdb1284d5e78f73f230fdbaef2a5dd81138ef642e8a5d8", "fetched_at": "2026-09-03T02:15:17.223466+00:00", "kind": "readme", "missing": false, "url": "https://github.com/qzq1111/flask-restful-example"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2720, "days_push": 728, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 3, "stale_scrape": false}}