Flask进阶:构建RESTful API和数据库交互

在初级教程中,我们已经介绍了如何使用Flask构建基础的Web应用。在本篇中级教程中,我们将学习如何用Flask构建RESTful API,以及如何使用Flask-SQLAlchemy进行数据库操作。

一、构建RESTful API

REST(Representational State Transfer)是一种构建Web服务的方法,它利用了HTTP协议中的四种基本操作:GET、POST、PUT和DELETE。在Flask中,我们可以方便地为每种HTTP方法定义路由:

python 复制代码
from flask import Flask, request, jsonify
app = Flask(__name__)

todos = []

@app.route('/todos', methods=['GET'])
def get_todos():
    return jsonify(todos)

@app.route('/todos', methods=['POST'])
def add_todo():
    todos.append(request.json.get('todo', ''))
    return '', 204

@app.route('/todos/<int:index>', methods=['PUT'])
def update_todo(index):
    todos[index] = request.json.get('todo', '')
    return '', 204

@app.route('/todos/<int:index>', methods=['DELETE'])
def delete_todo(index):
    del todos[index]
    return '', 204

二、使用Flask-SQLAlchemy进行数据库操作

Flask-SQLAlchemy是Flask的一个扩展,它提供了SQLAlchemy的所有功能,并为其添加了一些方便的功能,如分页支持等。

首先,你需要安装Flask-SQLAlchemy:

python 复制代码
pip install flask-sqlalchemy

然后,我们可以定义一个模型,并进行数据库操作:

python 复制代码
from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:tmp/test.db'
db = SQLAlchemy(app)

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50))

@app.route('/')
def index():
    user = User.query.filter_by(name='John').first()
    return 'Hello, {}!'.format(user.name)

在上述代码中,我们首先配置了数据库的URI,然后定义了一个User模型,最后在视图函数中进行了数据库查询。

以上,我们介绍了如何使用Flask构建RESTful API,以及如何使用Flask-SQLAlchemy进行数据库操作。希望这篇文章能帮助你深入理解Flask,开发更复杂的Web应用。

相关推荐
想摆烂的不会研究的研究生8 小时前
每日八股——Redis(1)
数据库·经验分享·redis·后端·缓存
码熔burning8 小时前
MySQL 8.0 新特性爆笑盘点:从青铜到王者的骚操作都在这儿了!(万字详解,建议收藏)
数据库·mysql
猫头虎8 小时前
2025最新OpenEuler系统安装MySQL的详细教程
linux·服务器·数据库·sql·mysql·macos·openeuler
哈库纳玛塔塔8 小时前
放弃 MyBatis,拥抱新一代 Java 数据访问库
java·开发语言·数据库·mybatis·orm·dbvisitor
@LetsTGBot搜索引擎机器人10 小时前
2025 Telegram 最新免费社工库机器人(LetsTG可[特殊字符])搭建指南(含 Python 脚本)
数据库·搜索引擎·机器人·开源·全文检索·facebook·twitter
计算机毕设VX:Fegn089510 小时前
计算机毕业设计|基于springboot + vue动物园管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
冉冰学姐10 小时前
SSM校园排球联赛管理系统y513u(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·ssm 框架应用·开题报告、
Tony Bai11 小时前
【分布式系统】03 复制(上):“权威中心”的秩序 —— 主从架构、一致性与权衡
大数据·数据库·分布式·架构
wb0430720112 小时前
SQL工坊不只是一个ORM框架
数据库·sql
至善迎风12 小时前
Redis完全指南:从诞生到实战
数据库·redis·缓存