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;从而使得自动…

基于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 结合使…

如何使用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;并对这些面孔进行评分&#…

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;收集网络性能…

Zabbix低权限SQL注入至RCE+权限绕过

Zabbix低权限SQL注入至RCE权限绕过&#xff0c;可惜没找到关于传webshell的好方法&#xff0c;如有大神告知&#xff0c;感激万分&#xff01; 本文中所有代码以及后续更新都会放在我的github仓库中&#xff1a; https://github.com/W01fh4cker/CVE-2024-22120-RCE 一、漏洞环…

[vulnhub]DC: 1

https://www.vulnhub.com/entry/dc-1,292/ 主机发现端口扫描 使用nmap扫描网段类存活主机 因为靶机是我最后添加的&#xff0c;所以靶机IP是156 nmap -sP 192.168.75.0/24 // Starting Nmap 7.93 ( https://nmap.org ) at 2024-09-28 12:48 CST Nmap scan rep…

jmeter脚本-请求体设置变量and请求体太长的处理

目录 1、查询接口 1.1 准备组织列表的TXT文件&#xff0c;如下&#xff1a; 1.2 添加 CSV数据文件设置 &#xff0c;如下&#xff1a; 1.3 接口请求体设置变量&#xff0c;如下&#xff1a; 2、创建接口 2.1 见1.1 2.2 见1.2 2.3 准备创建接口的请求体TXT文件&#xff…

SQL,力扣题目1549,每件商品的最新订单【窗口函数】

一、力扣链接 LeetCode_1549 二、题目描述 表: Customers ------------------------ | Column Name | Type | ------------------------ | customer_id | int | | name | varchar | ------------------------ customer_id 是该表主键. 该表包含消费者的…

卸载 Adobe Genuine Software Client

一、问题描述 使用破jie版Adobe Acrobat Pro DC软件后&#xff0c;会经常弹出以下窗口&#xff1a; 且上述探窗无法直接关掉。即使通过任务管理器将其临时关掉&#xff0c;可等过一段时间后&#xff0c;仍然会再次弹出&#xff0c;严重干扰工作进度。 二、问题解决 &#xff…