Python学习笔记-Flask接收post请求数据并存储数据库

1.引包

from flask import Flask, request, jsonify  
from flask_sqlalchemy import SQLAlchemy  

2.配置连接,替换为自己的MySQL 数据库的实际用户名、密码和数据库名
app = Flask(__name__)        #创建应用实列
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:pwd_Admin@localhost:3306/db1'
db = SQLAlchemy(app)        #初始化Flask-SQLAlchemy 扩展

* `mysql+pymysql`:指定了使用 `pymysql` 作为连接 MySQL 的驱动。 * `root`:数据库的用户名。 * `pwd_Admin`:数据库的密码。 * `localhost`:数据库服务器的地址,这里是本地机器。 * `3306`:数据库服务器的端口,MySQL 默认端口是 3306。 * `db1`:要连接的数据库名。

3.创建模型与数据库映射
class MotorControl(db.Model):id = db.Column(db.Integer, primary_key=True, autoincrement=True)start = db.Column(db.Float)stop = db.Column(db.Float)forward = db.Column(db.Float)backward = db.Column(db.Float)fault = db.Column(db.Float)ack = db.Column(db.Float)
4.创建数据库与模型对应 (默认将bool值True存储为1,False存储为0)

5.编写路由,获取post数据

首先创建了一个新的 MotorControl 实例(这是一个 SQLAlchemy 模型,代表数据库中的一个记录),并使用从 JSON 数据中提取的值初始化它。然后,将这个新记录添加到 SQLAlchemy 的会话中,并提交会话,将新记录保存到数据库中

6.运行代码
from flask import Flask, render_template, request, redirect, jsonify
from flask_sqlalchemy import SQLAlchemyapp = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:pwd_Admin@localhost:3306/db1'
db = SQLAlchemy(app)class MotorControl(db.Model):id = db.Column(db.Integer, primary_key=True, autoincrement=True)start = db.Column(db.Float)stop = db.Column(db.Float)forward = db.Column(db.Float)backward = db.Column(db.Float)fault = db.Column(db.Float)ack = db.Column(db.Float)@app.route('/store', methods=['POST'])
def store_data():json_data = request.get_json()start = json_data.get('0.0')stop = json_data.get('0.1')forward = json_data.get('0.2')backward = json_data.get('0.3')fault = json_data.get('0.4')ack = json_data.get('0.5')print(start, stop, forward, backward)new_record = MotorControl(start=start, stop=stop, forward=forward, backward=backward, fault=fault, ack=ack)db.session.add(new_record)db.session.commit()return jsonify({'message': 'Data stored successfully'}), 201if __name__ == '__main__':app.run(host='0.0.0.0')
7.编写发送post请求的代码,对应url到/store
import requestsstart = True
stop = True
forward = True
backward = True
fault = False
ack = False
json_data = {'0.0': start,'0.1': stop,'0.2': forward,'0.3': backward,'0.4': fault,'0.5': ack
}r2 = requests.post('http://127.0.0.1:5000/store', json=json_data)
print(r2.text)
8.执行发送post请求的代码后,mysql存储对应的数据

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

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

相关文章

优化 Nginx 处理 504 Gateway Timeout 错误

简介 504 Gateway Timeout 错误表示 Nginx 在指定的时间内没有从上游服务器收到响应。这可能是由于上游服务器处理时间过长或网络连接问题造成的。 调整 Nginx 参数 为了解决 504 错误,可以调整以下 Nginx 参数: **proxy_read_timeout:**指…

如何判断驱动中probe是否执行

在我们调试驱动程序的时候需要查看probe函数是否执行,我们只需要在其probe函数写一个printk函数即可,在驱动和设备匹配之后就会执行这个probe里面的打印函数 但是前提我们需要降低内核的打印级别,否则是看不到的,我们可以降到最低…

mac电脑maven配置环境变量

1、下载maven https://maven.apache.org 2、配置环境变量 vim .bash_profile JAVA_HOME/Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home PATH$JAVA_HOME/bin:$PATH export JAVA_HOME export PATH#maven export MAVEN_HOME/Users/haines/desktop/work/java/a…

鸿蒙OS开发实例:【应用事件打点】

简介 传统的日志系统里汇聚了整个设备上所有程序运行的过程流水日志,难以识别其中的关键信息。因此,应用开发者需要一种数据打点机制,用来评估如访问数、日活、用户操作习惯以及影响用户使用的关键因素等关键信息。 HiAppEvent是在系统层面…

适用于 Linux 的 Windows 子系统安装初体验

1、简述 Windows Subsystem for Linux (WSL) 是 Windows 的一项功能,允许您在 Windows 计算机上运行 Linux 环境,而无需单独的虚拟机或双重启动。 WSL 旨在为想要同时使用 Windows 和 Linux 的开发人员提供无缝且高效的体验。 使用 WSL 安装和运行各种 L…

【javaScript】DOM编程入门

一、什么是DOM编程 概念:DOM(Document Object Model)编程就是使用document对象的API完成对网页HTML文档进行动态修改,以实现网页数据和样式动态变化的编程 为什么要由DOM编程来动态修改呢?我们就得先理解网页的运行原理: 如上图&a…

Map之computeIfAbsent

Map之computeIfAbsent Absent /ˈbsənt , bˈsent/ ab相反s存在ent…的 从map中获取key对应的value,如果value不存在就用提供的Function创建一个新的value,然后存入map,最后返回 优化前 Map<String, Set<Pet>> statistics new HashMap<>(); Set<Pet…

IO流:字节流、字符流、缓冲流、转换流、数据流、序列化流 --Java学习笔记

目录 IO流 IO流的分类 IO流的体系 字节流&#xff1a; 1、Filelnputstream(文件字节输入流) 2、FileOutputStream(文件字节输出流) 字节流非常适合做一切文件的复制操作 复制案例&#xff1a; try-catch-finally 和 try-with-resource 字符流 1、FileReader(文件字符…

ALPHA开发板上的PHY芯片驱动:LAN8720驱动

一. 简介 前面文章了解到&#xff0c;Linux内核是有提供 PHY通用驱动的。 本文来简单了解一下ALPHA开发板上的 PHY网络芯片LAN8720的驱动。是 LAN8720芯片的公司提供的 PHY驱动。 二. ALPHA开发板上的PHY芯片驱动&#xff1a;LAN8720驱动 我 们 来 看 一 下 LAN8720A 的 …

输入url到页面显示过程的优化

浏览器架构 线程&#xff1a;操作系统能够进行运算调度的最小单位。 进程&#xff1a;操作系统最核心的就是进程&#xff0c;他是操作系统进行资源分配和调度的基本单位。 一个进程就是一个程序的运行实例。启动一个程序的时候&#xff0c;操作系统会为该程序创建一块内存&a…

HDLbits 刷题 --Always nolatches

学习: Your circuit has one 16-bit input, and four outputs. Build this circuit that recognizes these four scancodes and asserts the correct output. To avoid creating latches, all outputs must be assigned a value in all possible conditions (See also always…

【HTML】简单制作一个3D动画效果重叠圆环

目录 前言 开始 HTML部分 CSS部分 效果图 总结 前言 无需多言&#xff0c;本文将详细介绍一段代码&#xff0c;具体内容如下&#xff1a; 开始 首先新建文件夹&#xff0c;创建两个文本文档&#xff0c;其中HTML的文件名改为[index.html]&#xff0c;CSS的…

【chatGPT】我:在Cadence Genus软件中,出现如下问题:......【1】

我 在Cadence Genus中&#xff0c;出现如下问题&#xff1a;Error&#xff1a;A command argument did not match any of the acceptable command option. [TUI-170] [set_db] :‘/’ is not a legal option for the command. 该如何解决 ChatGPT Cadence Genus的错误消息 “…

探索Java多线程编程的奥秘

在当今互联网时代&#xff0c;软件系统的高性能和高并发已经成为了各类应用的标配。而在Java领域&#xff0c;多线程编程作为实现高性能和高并发的重要手段&#xff0c;备受开发者们的关注。本文将带您深入探索Java多线程编程的奥秘&#xff0c;介绍其基本概念、常见问题和最佳…

GPT-2原理-Language Models are Unsupervised Multitask Learners

文章目录 前言GPT-1优缺点回顾GPT-1实验结果分析GPT-1缺陷分析 GPT-2训练数据OpenAI的野心预训练/微调的训练范式训练数据选择 模型结构和参数&#xff08;更大的GPT-1&#xff09;模型预训练训练参数 输入数据编码 总结 前言 首先强调一下&#xff0c;在看这篇文章之前&#…

搞学术研究好用免费的学术版ChatGPT网站-学术AI

学术版ChatGPThttps://chat.uaskgpt.com/mobile/?user_sn88&channelcsdn&scenelogin 推荐一个非常适合中国本科硕士博士等学生老师使用的学术版ChatGPT&#xff0c; 对接了超大型学术模型&#xff0c;利用AI技术实现学术润色、中英文翻译&#xff0c;学术纠错&#…

中值滤波算法与SSE2指令集并行优化

中值滤波算法是经典图像处理中极为常见的操作,一般我们通过调用OpenCV或者是Matlab直接进行使用,以至于有种它本来就很容易实现且速度很快的错觉。近来用到中值滤波算法,因为不想用到OpenCV库或者Matlab而对其实现研究了一番,才发现其中有很多值得注意的细节。下面我们结合…

MongoDB集合结构分析工具Variety

工具下载地址&#xff1a;GitHub - variety/variety: Variety: a MongoDB Schema Analyzer 对于Mongo这种结构松散的数据库来说&#xff0c;如果想探查某个集合的结构&#xff0c;通过其本身提供的功能很不方便&#xff0c;通过调研发现一个很轻便的工具--variety&#xff0c;…

centOS如何升级python

centOS下升级python版本的详细步骤 1、可利用linux自带下载工具wget下载&#xff0c;如下所示&#xff1a; 笔者安装的是最小centos系统&#xff0c;所以使用编译命令前&#xff0c;必须安装wget服务&#xff0c;读者如果安装的是界面centos系统&#xff0c;或者使用过编译工具…

在 Amazon Timestream 上通过时序数据机器学习进行预测分析

由于不断变化的需求和现代化基础设施的动态性质&#xff0c;为大型应用程序规划容量可能会非常困难。例如&#xff0c;传统的反应式方法依赖于某些 DevOps 指标&#xff08;如 CPU 和内存&#xff09;的静态阈值&#xff0c;而这些指标在这样的环境中并不足以解决问题。在这篇文…