Flask python开发篇: 写一个简单的接口

第一步:新建flask项目

参考使用pycharm新建一个项目

打开pycharm,根据下面图中箭头顺序,新建一个flask的项目;

第二步:运行项目,

安装成功以后,会有个app.py文件,打开以后,运行它;

可以使用右上角的运行按钮运行;也可以在文件内右击运行,如下图:

运行以后,会出现访问地址,这时候浏览器就能打开访问了

第三步:编写自己的第一个接口

复制代码
from flask import Flask, request, jsonify

app = Flask(__name__)

# 假设博客文章数据存储在一个列表中
posts = [
    {"id": 1, "title": "Hello World", "content": "This is the first blog post."},
    {"id": 2, "title": "Introduction to Flask", "content": "A tutorial on using Flask to build web applications."}
]

# 获取所有博客文章列表
@app.route('/api/posts', methods=['GET'])
def get_posts():
    return jsonify(posts)

# 获取单篇博客文章
@app.route('/api/posts/<int:post_id>', methods=['GET'])
def get_post(post_id):
    post = next((p for p in posts if p["id"] == post_id), None)
    if post:
        return jsonify(post)
    else:
        return jsonify({"message": "Post not found"}), 404

# 创建新的博客文章
@app.route('/api/posts', methods=['POST'])
def create_post():
    data = request.get_json()
    if "title" in data and "content" in data:
        new_post = {
            "id": len(posts) + 1,
            "title": data["title"],
            "content": data["content"]
        }
        posts.append(new_post)
        return jsonify(new_post), 201
    else:
        return jsonify({"message": "Invalid data"}), 400

# 更新博客文章
@app.route('/api/posts/<int:post_id>', methods=['PUT'])
def update_post(post_id):
    post = next((p for p in posts if p["id"] == post_id), None)
    if post:
        data = request.get_json()
        post["title"] = data.get("title", post["title"])
        post["content"] = data.get("content", post["content"])
        return jsonify(post)
    else:
        return jsonify({"message": "Post not found"}), 404

# 删除博客文章
@app.route('/api/posts/<int:post_id>', methods=['DELETE'])
def delete_post(post_id):
    global posts
    posts = [p for p in posts if p["id"] != post_id]
    return '', 204

if __name__ == '__main__':
    app.run()

这里假设数据存储在一个列表里,并不是从数据库中取出的,先跑起来哈,下一篇我再分享怎么连接数据库;

这时候访问http://127.0.0.1:5000/api/posts,就能获取到数据了

相关推荐
BoBoZz193 分钟前
PerlinNoise Perlin噪声(PerlinNoise)隐式函数构建模型并渲染
python·vtk·图形渲染·图形处理
kkoral4 分钟前
基于MS-Swift 为 Qwen3-0.6B-Base 模型搭建可直接调用的 API 服务
python·conda·fastapi·swift
IT_陈寒4 分钟前
JavaScript性能优化:7个V8引擎内部原理帮你减少90%内存泄漏的实战技巧
前端·人工智能·后端
PythonFun5 分钟前
WPS多维表结合Python实现在线批量查词
开发语言·python·wps
JaguarJack12 分钟前
当遇见 CatchAdmin V5-模块化设计重新定义 Laravel 后台开发
后端·php
爱笑的眼睛1113 分钟前
深入 Django 表单 API:从数据流到高级定制
java·人工智能·python·ai
万粉变现经纪人15 分钟前
Python系列Bug修复PyCharm控制台pip install报错:如何解决 pip install 网络报错 企业网关拦截 User-Agent 问题
网络·python·pycharm·beautifulsoup·bug·pandas·pip
Qiuner16 分钟前
Spring Boot AOP(三) 通知执行链源码解析
java·spring boot·后端
羑悻的小杀马特17 分钟前
【Linux篇章】再续传输层协议TCP:用技术隐喻重构网络世界的底层逻辑,用算法演绎‘网络因果律’的终极推演(通俗理解TCP协议,这一篇就够了)!
linux·网络·后端·tcp/ip·tcp协议
BingoGo20 分钟前
当遇见 CatchAdmin V5-模块化设计重新定义 Laravel 后台开发
后端·php