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

news/2024/6/18 0:56:55 标签: python, 学习, 笔记
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.运行代码
python">from flask import Flask, render_template, request, redirect, jsonify
from flask_sqlalchemy import SQLAlchemy


app = 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'}), 201

if __name__ == '__main__':
    app.run(host='0.0.0.0')
7.编写发送post请求的代码,对应url到/store
python">import requests


start = 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.niftyadmin.cn/n/5469175.html

相关文章

WebKit结构简介

WebKit是一个开源的浏览器引擎,它负责在网页浏览器中渲染网页内容。作为现代浏览器的核心组件之一,WebKit以其高效、稳定和灵活的特性,在浏览器市场中占据了重要地位。本文将简要介绍WebKit的结构和工作原理。 一、WebKit的主要组成部分 We…

面试算法-138-移动零

题目 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0] 解 class Solution {pub…

【数据结构与算法】归并排序(详解:递归与非递归的归并排序 | 赠:冒泡排序和选择排序)

前言 本篇博客会对排序做一个收尾,将最经典的七大排序介绍完毕。 这次的重点正如标题,主要讲的是归并排序,还会带过相对简单很多的冒泡排序和选择排序。在最后还会给这七大排序做出一个时间复杂度和稳定性展示的总结收尾。同时,这…

全局统一返数据类型封装记录

全局统一返回值封装 ​ 在Spring Boot中,实现全局统一返回值封装是一种常见的做法,它有助于保持API的一致性,并简化前端对响应数据的处理。创建一个响应体类,包含状态码、消息、数据等字段。这个类可以作为所有控制器返回值的通用…

StarRocks实战——携程火车票指标平台建设

目录 前言 一、早期OLAP架构与痛点 二、指标平台重构整体设计 2.1 指标查询过程 2.1.1 明细类子查询 2.1.2 汇总类子查询 2.1.3 “缓存” 2.2 数据同步 三、Starrocks使用经验分享 3.1 建表经验 3.2 数据查询 3.3 函数问题 四、查询性能大幅提升 五、 后续优化方…

stm32f103c8t6学习笔记(学习B站up江科大自化协)-SPI

SPI通信 SPI,(serial peripheral interface),字面翻译是串行外设接口,是一种通用的数据总线,适用于主控和外挂芯片之间的通信,与IIC应用领域非常相似。 IIC无论是在硬件电路还是在软件时序设计…

数据结构之二叉树和平衡二叉树

1、二叉树: package com.datastructure.tree; //一个常用的第三方库是Apache Commons Collections,它提供了一个名为BinaryTree的类,用于表示二叉树。 //可以使用org.apache.commons.collections4.BinaryTree类创建二叉树和进行操作。 //可以…

mysql 正则表达式查询

学习了mysql 连接查询和子查询和myql join连接,接下来学习下正则表达式查询。正则表达式的规则都是相似的。 8,使用正则表达式查询 正则表达式通常被用来检索或替换那些符合某个模式的文本内容,根据指定的匹配模式匹配文本中符合要求的特殊字符串。例如从…