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

第一步:新建flask项目

参考使用pycharm新建一个项目
打开pycharm,根据下面图中箭头顺序,新建一个flask的项目;
在这里插入图片描述

第二步:运行项目,

安装成功以后,会有个app.py文件,打开以后,运行它;
在这里插入图片描述
可以使用右上角的运行按钮运行;也可以在文件内右击运行,如下图:
在这里插入图片描述

运行以后,会出现访问地址,这时候浏览器就能打开访问了
在这里插入图片描述

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

from flask import Flask, request, jsonifyapp = 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), 201else: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 postsposts = [p for p in posts if p["id"] != post_id]return '', 204if __name__ == '__main__':app.run()

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

这时候访问http://127.0.0.1:5000/api/posts,就能获取到数据了
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/732312.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

qt一个项目有且只有有一个maindow,其他小窗口用QWidget,QDialog是带有yes和no的QWidget

QMaindow QWidget QDialog区别很大 我想要在生成一个小窗口&#xff0c;结果选择基类为maindow&#xff0c;应该是QWidget 然后就出现奇奇怪怪的问题 QMaindow和QWidget不能乱选择&#xff0c;而且各自QPaintEvent也有很多区别 以下就是错误&#xff1a; 我继承maindow的基类…

【物联网设备端开发】物联网设备上云提供开箱即用接入SDK

&#x1f308; 个人主页&#xff1a;帐篷Li &#x1f525; 系列专栏&#xff1a;物联网设备端开发 &#x1f4aa;&#x1f3fb; 物联网设备上云提供开箱即用接入SDK 目录 一、项目介绍 二、项目目录 三、集成方式 四、设备功能开发 4.1 连接与消息 4.2 业务功能 4.3 运维…

云服务器实例重启后,各个微服务的接口(涉及mysql操作的)都用不了了

问题描述&#xff1a; 云服务器被黑客植入挖矿。重启云服务器实例后得到解决&#xff0c;接着把docker&#xff08;zookeeper、redis啥的&#xff09;还有后端jar包啥的都重启了&#xff0c;然后发现后端接口访问不了&#xff0c;只有不涉及数据库操作的接口正常访问&#xff…

【毕业】 医药药店销售管理系统

1、引言 设计结课作业,课程设计无处下手&#xff0c;网页要求的总数量太多&#xff1f;没有合适的模板&#xff1f;数据库&#xff0c;java&#xff0c;python&#xff0c;vue&#xff0c;html作业复杂工程量过大&#xff1f;毕设毫无头绪等等一系列问题。你想要解决的问题&am…

自动驾驶革命:解密端到端背后的数据、算力和AI奇迹

作者 |毫末智行数据智能科学家 贺翔 编辑 |祥威 最近&#xff0c;特斯拉FSD V12的发布引发了业界对端到端自动驾驶的热议&#xff0c;业界纷纷猜测FSD V12的强大能力是如何训练出来的。从马斯克的测试视频可以大致归纳一下FSD V12系统的一些核心特征&#xff1a; 训练数据&am…

防御保护第七次作业-IPSEC VPPN实验

&#xff08;场景选用点到点&#xff0c;配置好FW1的出接口地址和对端FW3的接口地址&#xff0c;认证方式选用预共享密钥&#xff0c;身份认证选用IP地址&#xff09; 1、FW1 IP Sec策略配置 IKE参数配置&#xff1a; IP Sec参数&#xff1a; FW2配置&#xff1a; 加密数据流配…

【附教程】2024,人工智能+AI绘画,看这里就够了~14款主流图像生成软件工具总有一个适合你

AI绘画技术通过深度学习和处理海量图像数据&#xff0c;能够迅速将文字描述转化为富有创意和艺术性的画作。这一技术不仅极大地提升了艺术家的创作效率和作品质量&#xff0c;还为他们提供了全新的灵感来源和创作方式&#xff0c;推动了艺术领域的创新与发展。 同时&#xff0…

力扣代码学习日记八

文章目录 思路解题方法复杂度代码 Problem: 1502. 判断能否形成等差数列 思路 给你一个数字数组 arr 。 如果一个数列中&#xff0c;任意相邻两项的差总等于同一个常数&#xff0c;那么这个数列就称为 等差数列 。 如果可以重新排列数组形成等差数列&#xff0c;请返回 true &a…

Redis持久化:RDB和AOF

RDB&#xff08;Redis DataBase&#xff09; AOF&#xff08;Append Only File&#xff09; AOF重写 RDB AOF 混合持久化 开启 RDB 持久化&#xff1a; RDB 是默认启用的&#xff0c;但你可以检查并设置相关参数以满足你的需求&#xff0c;例如更改保存间隔时间、数据库大…

接口自动化测试框架搭建:基于python+requests+pytest+allure实现

众所周知&#xff0c;目前市面上大部分的企业实施接口自动化最常用的有两种方式&#xff1a; 1、基于代码类的接口自动化&#xff0c;如&#xff1a; PythonRequestsPytestAllure报告定制 2、基于工具类的接口自动化&#xff0c;如&#xff1a; PostmanNewmanJenkinsGit/svnJme…

c++0305习题

一、求下面表达式的值 1&#xff0e;0 2&#xff0e;-1 3&#xff0e;1 4&#xff0e;&#xff08;1&#xff09;1 &#xff08;2&#xff09;3.2 &#xff08;3&#xff09;0 &#xff08;4&#xff09;7.0 5.&#xff08;1&#xff09;0&#xff08;2&#xff09;300.005&a…

python中lambda简介及用法

什么是lambda&#xff1f; lambda是python中的一个关键字&#xff0c;它用于创建匿名函数&#xff0c;也就是没有名字的函数。lambda函数通常用于一些简单的操作&#xff0c;比如作为参数传递给其他函数&#xff0c;或者作为返回值返回给调用者。lambda函数的语法如下&#xf…

记录tensorflow cpu版本安装

已有&#xff1a;anaconda环境 创建虚拟环境 conda create -n tf_cpu python3.9.0 进入虚拟环境 activate tf_cpu 可以选择设置下载源 # 查看当前下载源 conda config --show-sources # 添加下载源 # 清华镜像源 conda config --add channels https://mirrors.tuna.tsing…

数据结构面试问题

数据结构是计算机科学中一个非常重要的基础知识,在面试中也经常会被问到。本文将详细介绍几种常见数据结构的面试题,并给出代码示例,希望对大家准备面试有所帮助。 一、数组和字符串 1. 如何反转一个字符串? 最简单的方法是使用双指针,一个指向字符串开头,一个指向结尾,然后…

Ubuntu 18.04安装最新版Visual Studio Code(VS Code)报依赖库版本过低错误

Ubuntu 18.04安装最新版Visual Studio Code&#xff08;VS Code&#xff09;报依赖库版本过低错误 1. 问题描述2. 解决方案2.1 修复之前安装的错误2.2 安装VS Code 1.85.2 3. 原因分析 1. 问题描述 在Ubuntu 18.04系统上安装VS Code ≥ v1.86.2&#xff08;测试到v1.87.1&…

laravel 模型多对多,应用

laravel 模型多对多&#xff0c;应用&#xff0c;试卷 跟 区域 多对多关系 一个试卷可以发放到a b c 区域 创建试卷表 CREATE TABLE exams (exam_id int(11) unsigned NOT NULL AUTO_INCREMENT,exam_title varchar(100) NOT NULL DEFAULT COMMENT 标题,created_time int(11…

考虑局部遮阴的光伏PSO-MPPT控制MATLAB仿真

微❤关注“电气仔推送”获得资料&#xff08;专享优惠&#xff09; 简介 光伏电池阵列的输出特性曲线不是线性变化的。当光伏电池遮荫时&#xff0c;产生的功 率会不断变化&#xff0c;致使光伏电池阵列的输出功率不断变化&#xff0c;其输出特性曲线呈现多峰值的现象。 多峰…

【漏洞复现】Linksys E2000 position.js 身份验证绕过漏洞(CVE-2024-27497)

0x01 产品简介 Linksys E2000是一款由思科&#xff08;Cisco&#xff09;品牌推出的无线路由器&#xff0c;它是一款支持2.4GHz和5GHz双频段的无线路由器&#xff0c;用户可以避开拥挤的2.4GHz频段&#xff0c;独自享受5GHz频段的高速无线生活。 0x02 漏洞概述 Linksys E200…

Jmeter 使用教程(小白一学就会)

下载 官网下载地址 解压 zip 打开 进入 jmeter 的 bin 目录下mac 电脑启动&#xff0c;执行以下命令&#xff08;注意 windows 使用 jmeter.bat 启动&#xff09; ./jmeter打开成功 修改为中文 创建测试计划 添加线程组 修改线程属性 在线程组添加 HTTP 请求 设置 Web…

golang数组和Slice地址

var nameList [56]string // 数组指针地址与数据第一个值地址相同 fmt.Printf("nameLists数组的内存地址为%p\n", &nameList) fmt.Printf("nameList数组中第一个元素的地址为%p\n", &nameList[0]) fmt.Printf("nameList数组中第二个元素的地址…