sqlalchemy进阶使用

from sqlalchemy import create_engine# 替换为你的MySQL数据库信息
username = 'root'
password = '123456'
host = 'localhost'  # 例如:'localhost' 或 '127.0.0.1'
port = '3306'  # 通常是 3306
database = 'ee'# 创建连接引擎
engine = create_engine(f'mysql+pymysql://{username}:{password}@{host}:{port}/{database}')
# engine = create_engine(f'mysql+pymysql://{username}:{password}@{host}:{port}/{database}', echo=True)

以上文本放置在config.py文件,设置MySQL信息

from wtforms import Form, BooleanField, StringField, PasswordField, validators
from sqlalchemy import Column, String, Integer
from sqlalchemy.orm import declarative_base
from config import engineBase = declarative_base()class User(Base):__tablename__ = "users"id = Column('id', Integer, primary_key=True, )name = Column('name', String(50), unique=True, comment="姓名")age = Column('age', Integer, unique=True, comment='年龄')# 这里是自定义的调用该数据后的自动回复形式设置# def __repr__(self):#     repr_id = self.id#     repr_name = self.name#     repr_age = self.age#     return f"id:{repr_id}, name: {repr_name}, age: {repr_age}"if __name__ == '__main__':Base.metadata.create_all(engine)

上文放置在models文件夹下的userdate.py,用于创建数据模型

from flask import Blueprint, request
from models.userdata import User
import json
from config import engine
from sqlalchemy.orm import sessionmakerSession = sessionmaker(bind=engine)  # 构建session对象
session = Session()
user = Blueprint('user', __name__)
def user_data_zip(query_result):list1 = []for result in query_result:list_key = ['id', 'name', 'age']list_value = [result.id, result.name, result.age]zip1 = dict(zip(list_key, list_value))list1.append(zip1)return list1@user.route('/GetList/', methods=['get'])
def GetList_list():query_result = session.query(User).all()list1 = user_data_zip(query_result)return json.dumps(list1)@user.route('/GetList/<id_num>', methods=['get'])
def GetList_list_id(id_num):if id_num == 'all':query_result = session.query(User).all()else:query_result = session.query(User).filter(User.id == id_num).all()list1 = user_data_zip(query_result)return json.dumps(list1)@user.route('/PostList', methods=['post'])
def PostList_list():# request.get_json用于json数据请求体中获取# request.form用于html中表单数据获取list_form = request.get_json()post_data = User(id=list_form['id'], name=list_form['name'], age=list_form['age'])session.add(post_data)session.commit()return list_form@user.route('/PutUser', methods=['post'])
def PutUser_list():list_form = request.get_json()post_data = session.query(User).filter(User.id == list_form['id'])# 放入的值必须是不同的post_data.update({"name": list_form['name'], "age": list_form['age']})session.commit()return list_form@user.route('/DeleteUser', methods=['post'])
def DeleteUser_list():list_form = request.get_json()post_data = session.query(User).filter(User.id == list_form['id'])post_data.delete()session.commit()return list_form

以上文本放置在user.py,用于获取JSON数据并对数据库进行增删改查

from flask import Flask
from views.error import error
# from gevent import pywsgi
from views.user import user
from models.userdata import User
test = Flask(__name__)
# 注册蓝图
test.register_blueprint(user, url_prefix='/user')if __name__ == '__main__':test.run(debug=True)# server = pywsgi.WSGIServer(('', 80), test)# print('WSGI服务开启:127.0.0.1:80')# server.serve_forever()

以上文本放置在test.py,以此为启动文件,代替app.py默认,只需要把test改成app即可换回默认形式

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

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

相关文章

AIGC时代LaTeX排版的应用、技巧与未来展望

文章目录 一、LaTeX简介与基础设置二、常用特殊符号与公式排版三、图片与表格的插入与排版四、自动编号与交叉引用五、自定义命令与样式六、LaTeX在AIGC时代的应用与挑战七、LaTeX的未来展望《LaTeX 入门实战》内容简介作者简介目录前言/序言读者对象本书内容充分利用本书 在AI…

Ansible 部署应用

Ansible Ansible 是基于 Python 开发&#xff0c;集合了众多优秀运维工具的优点&#xff0c;实现了批量运行命令、部署程序、配置系统等功能的自动化运维管理工具。默认通过 SSH 协议进行远程命令执行或下发配置&#xff0c;无需部署任何客户端代理软件&#xff0c;从而使得自动…

centos7 rpm -ivh *.rpm --nodeps 会导致有哪些问题?

使用 rpm -ivh *.rpm --nodeps 命令来安装 RPM 包会忽略所有依赖关系&#xff0c;这可能导致以下几种问题&#xff1a; 缺少依赖库&#xff1a; ● 如果某个包依赖的库文件没有安装&#xff0c;那么该包可能无法正常运行。例如&#xff0c;如果 keepalived 依赖于 libnetsnmp.s…

基于SpringBoot+Gpt个人健康管家管理系统【提供源码+答辩PPT+参考文档+项目部署】

作者简介&#xff1a;✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流。✌ 主要内容&#xff1a;&#x1f31f;Java项目、Python项目、前端项目、PHP、ASP.NET、人工智能…

React中常用的hook函数(三)——useReducer和useContext

React中常用的hook函数(一)——useState和useEffect_usestate useeffect-CSDN博客https://blog.csdn.net/Mrs_Lupin/article/details/142905749?sharetypeblogdetail&sharerId142905749&sharereferPC&sharesourceMrs_Lupin&spm1011.2480.3001.8118React中常用…

Android问题 -- DJ多多的下载文件在哪里? DJ多多dat格式转换为mp3

目的 想要将安卓 DJ多多 应用所下载的歌曲文件转换为 mp3 格式, 以便于传输到手表上进行播放 (健身跑步用) 但是找不到在安卓手机中DJ多多的下载的文件路径 文件路径 使用 ES文件浏览器 查看, 自带文件管理器一般查不到 文件路径: 内部存储/Android/data/com.shoujiduoduo.…

使用 Elastic、OpenLLMetry 和 OpenTelemetry 跟踪 LangChain 应用程序

作者&#xff1a;来自 Elastic Bahubali Shetti Langchain 应用程序的使用正在增长。构建基于 RAG 的应用程序、简单的 AI 助手等的能力正在成为常态。观察这些应用程序更加困难。考虑到现有的各种选项&#xff0c;本博客展示了如何将 OpenTelemetry 检测与 OpenLLMetry 结合使…

Vue项目与IE浏览器的兼容性分析(Vue|ElementUI)

总体分析 Vue.js的兼容性在不同版本间有所差异&#xff0c;具体针对IE浏览器的推荐版本如下&#xff1a; Vue 2.x 官方支持&#xff1a;Vue 2.x版本官方宣布支持IE9及以上版本的IE浏览器。限制与Polyfill&#xff1a;虽然Vue 2.x支持IE9及以上版本&#xff0c;但在使用时可能…

如何使用Web-Check和cpolar实现安全的远程网站监测与管理

文章目录 前言1.关于Web-Check2.功能特点3.安装Docker4.创建并启动Web-Check容器5.本地访问测试6.公网远程访问本地Web-Check7.内网穿透工具安装8.创建远程连接公网地址9.使用固定公网地址远程访问 前言 本期给大家分享一个网站检测工具Web-Check&#xff0c;能帮你全面了解网…

LabVIEW适合开发的软件

LabVIEW作为一种图形化编程环境&#xff0c;主要用于测试、测量和控制系统的开发。以下是LabVIEW在不同应用场景中的适用性和优势。 一、测试与测量系统 LabVIEW在测试与测量系统中的应用广泛&#xff0c;是工程测试领域的主流工具之一。利用其强大的数据采集与处理功能&…

面试题:JVM(四)

new对象流程&#xff1f;&#xff08;龙湖地产&#xff09; 对象创建方法&#xff0c;对象的内存分配。&#xff08;360安全&#xff09; 1. 对象实例化 创建对象的方式有几种&#xff1f; 创建对象的步骤 指针碰撞&#xff1a;以指针为分界线&#xff0c;一边是已连续使用的…

ERP研究 | 颜值美和道德美,哪个更重要?

摘要 道德美和颜值美都会影响我们的评价。在这里&#xff0c;本研究采用事件相关电位(ERPs)技术探讨了道德美和颜值美如何交互影响社会判断和情感反应。参与者(均为女性)将积极、中性或消极的言语信息与高吸引力或低吸引力面孔进行关联&#xff0c;并对这些面孔进行评分&#…

kafka消费端常见故障及处理方法

文章目录 前言一、消费端某个进程已经crash1. 主要心跳相关配置2. 完整的消费者配置示例3. 调整参数的建议 二、客户端没有crash&#xff0c;但是消费阻塞1. 工作机制2. 示例配置3.运用在代码里3. 配置建议 前言 kafka消费端经常会出现一些故障&#xff0c;一起来分析一下故障…

figma的drop shadow x:0 y:4 blur:6 spread:0 如何写成css样式

figma的drop shadow x:0 y:4 blur:6 spread:0 如何写成css样式 在CSS中&#xff0c;我们可以使用box-shadow属性来模拟Figma中的Drop Shadow效果。box-shadow属性接受的值分别是&#xff1a;横向偏移、纵向偏移、模糊半径、扩展半径和颜色。 但是&#xff0c;Figma的Drop Sha…

CSS中常见的两列布局、三列布局、百分比和多行多列布局!

目录 一、两列布局 1、前言&#xff1a; 2. 两列布局的常见用法 两列布局的元素示例&#xff1a; 代码运行后如下&#xff1a; 二、三列布局 1.前言 2. 三列布局的常见用法 三列布局的元素示例&#xff1a; 代码运行后如下&#xff1a; 三、多行多列 1.前言 2&…

Vue3版本的uniapp项目运行至鸿蒙系统

新建Vue3版本的uniapp项目 注意&#xff0c;先将HbuilderX升级至最新版本&#xff0c;这样才支持鸿蒙系统的调试与运行&#xff1b; 按照如下图片点击&#xff0c;快速升级皆可。 通过HbuilderX创建 官方文档指导链接 点击HbuilderX中左上角文件->新建->项目 创建vue3…

Nature文章《deep learning》文章翻译

这篇文章是对Nature上《deep learning》文章的翻译。原作者 Yann LeCun, Yoshua Bengio& Geoffrey Hinton。 这篇文章的中心思想是深入探讨深度学习在机器学习中的革命性贡献&#xff0c;重点介绍其在特征学习、监督学习、无监督学习等方面的突破&#xff0c;并阐述其在图…

AnaTraf | 全流量回溯分析:网络故障排除的 “时光回溯机”

AnaTraf 网络性能监控系统NPM | 全流量回溯分析 | 网络故障排除工具AnaTraf网络流量分析仪是一款基于全流量&#xff0c;能够实时监控网络流量和历史流量回溯分析的网络性能监控与诊断系统&#xff08;NPMD&#xff09;。通过对网络各个关键节点的监测&#xff0c;收集网络性能…

每日算法练习

大家好&#xff0c;今天给大家带来一些算法题&#xff0c;无他&#xff0c;只是想让大家认识一些题型&#xff0c;当以后遇到后会有头绪&#xff0c;能够使用优秀的算法。 题目一 一颗二叉树有n个节点&#xff0c;求最多有多少种二叉树形状。 题目分析 如果二叉树有0个节点&a…