【Python + Flask + AWS 比赛速成指南】CRUD + 求和 + 高分技巧
·
目录
二、Flask CRUD + 求和模板(DynamoDB 示例)
一、项目依赖
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 |
快速定位模块即可,结合模板代码完成操作。
五、比赛高分快速策略
-
先跑最小功能:CRUD + 求和
-
测试数据是否写入和返回正确
-
数组、求和、平均等计算逻辑要完整
-
善用 AWS 模块速查表,题目一看就知道用哪个服务
-
调试技巧:
-
print(request.json)打印请求体 -
Postman / 浏览器测试接口
-
出现报错快速搜索关键词:Flask POST JSON、Python boto3 DynamoDB、Python pymysql
-
更多推荐



所有评论(0)