目录

一、项目依赖

二、Flask CRUD + 求和模板(DynamoDB 示例)

三、MySQL CRUD + 统计模板

四、AWS 服务模块速成表(指南)

五、快速策略


一、项目依赖

pip install flask boto3 pymysql
  • Flask:Web 服务

  • boto3:操作 DynamoDB、S3、Lambda

  • pymysql:操作 MySQL / RDS


二、Flask CRUD + 求和模板(DynamoDB 示例)

from flask import Flask, request, jsonify
import boto3

app = Flask(__name__)

dynamodb = boto3.resource('dynamodb', region_name="us-west-2")
table = dynamodb.Table('orders')  # 主键: order

@app.route("/order", methods=["POST"])
def add_order():
    data = request.json
    order = data.get("order")        # 支持字符串或数组
    table.put_item(Item={"order": order})
    return jsonify({"message":"插入成功", "order": order})

@app.route("/order/query", methods=["GET"])
def query_order():
    order = request.args.get("order")
    resp = table.get_item(Key={"order": order})
    return jsonify(resp.get("Item", {"message":"未找到"}))

@app.route("/order/sum", methods=["POST"])
def sum_order():
    values = request.json.get("values")  # [1,2,3,4]
    total = sum(values)
    return jsonify({"total": total})

if __name__=="__main__":
    app.run(host="0.0.0.0", port=5000, debug=True)

 比赛高分技巧:

  • POST 写入 → GET 查询 → POST 求和顺序实现

  • 数据验证不遗漏(数组/字符串都可以处理)


三、MySQL CRUD + 统计模板

import pymysql

def get_conn():
    return pymysql.connect(
        host='host', user='user', password='pass', db='db',
        cursorclass=pymysql.cursors.DictCursor
    )

# 插入
@app.route("/mysql_order", methods=["POST"])
def add_mysql_order():
    data = request.json
    name = data.get("name")
    age = data.get("age")
    with get_conn() as conn:
        with conn.cursor() as cursor:
            cursor.execute("INSERT INTO test_table (name, age) VALUES (%s, %s)", (name, age))
            conn.commit()
    return jsonify({"message":"MySQL 插入成功"})

# 查询
@app.route("/mysql_order/query", methods=["GET"])
def query_mysql_order():
    name = request.args.get("name")
    with get_conn() as conn:
        with conn.cursor() as cursor:
            cursor.execute("SELECT * FROM test_table WHERE name=%s", (name,))
            result = cursor.fetchone()
    return jsonify(result or {"message":"未找到"})

# 求和/平均
@app.route("/mysql_order/stats", methods=["GET"])
def mysql_stats():
    with get_conn() as conn:
        with conn.cursor() as cursor:
            cursor.execute("SELECT SUM(age) as total_age, AVG(age) as avg_age FROM test_table")
            result = cursor.fetchone()
    return jsonify(result)

四、AWS 服务模块速成表(高分指南)

模块 服务 学习重点 实战建议
计算 EC2 / Lambda / ECS / EKS EC2 启动、SSH、AMI、Auto Scaling;Lambda + API Gateway;ECS 容器部署;EKS 集群管理 创建 EC2,部署 nginx;Lambda 写函数;ECS 用 Fargate 部署容器;EKS 部署微服务
存储 S3 / EBS / EFS / Glacier 对象存储 vs 块存储 vs 文件存储;生命周期策略;权限管理 创建 S3 bucket,上传/下载对象;版本控制;挂载 EFS 到 EC2
数据库 RDS / DynamoDB / Aurora / ElastiCache RDS MySQL/Postgres 管理;DynamoDB NoSQL;Redis 缓存 RDS 连接 EC2;DynamoDB 写入查询;Redis 实现缓存
网络 VPC / Subnet / NAT / Security Group / Route Table / ALB / NLB / CloudFront VPC 架构设计,子网规划;安全组 & NACL;负载均衡;CDN 搭建多 AZ VPC;配置 NAT Gateway;ALB + EC2 后端;CloudFront 加速网站
IAM & 安全 IAM / Organizations / KMS / Secrets Manager 用户/角色管理;权限策略;密钥管理 创建 IAM 用户、角色、策略;使用 Secrets Manager 存密码
DevOps CloudFormation / CodePipeline / CloudWatch / CloudTrail IaC、CI/CD;监控 & 审计 用 CloudFormation 部署 EC2+S3;创建 CloudWatch 告警;启用 CloudTrail

 快速定位模块即可,结合模板代码完成操作。


五、比赛高分快速策略

  1. 先跑最小功能:CRUD + 求和

  2. 测试数据是否写入和返回正确

  3. 数组、求和、平均等计算逻辑要完整

  4. 善用 AWS 模块速查表,题目一看就知道用哪个服务

  5. 调试技巧

    • print(request.json) 打印请求体

    • Postman / 浏览器测试接口

    • 出现报错快速搜索关键词:Flask POST JSON、Python boto3 DynamoDB、Python pymysql

更多推荐