Python_Flask03

这篇文章主要介绍的是数据库的增删改查操作,无多余好说的。

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy import text
from flask_migrate import Migrateapp = Flask(__name__)# 本地基础信息的主机名
HOSTNAME = "127.0.0.1"
# mysql端口号
PORT = "3306"
# 账号
USERNAME = "root"
# 密码
PASSWORD = "admin123"
# 数据库名
DATABASE = "flasklearn"
# 将相关的配置挂载app.config中
app.config['SQLALCHEMY_DATABASE_URI'] = f"mysql+pymysql://{USERNAME}:{PASSWORD}@{HOSTNAME}:{PORT}/{DATABASE}?charset=utf8"# SQLAlchemy会加载app中的配置
db = SQLAlchemy(app)migrate = Migrate(app,db)
# 测试数据库是否链接成功
"""with app.app_context():with db.engine.connect() as conn:# 使用 text() 函数将字符串转换为可执行对象rs = conn.execute(text("SELECT 1"))print(rs.fetchone())#日志中出现 (1,) 代表数据库连接成功
"""class User(db.Model):__tablename__ = 'user'id = db.Column(db.Integer, primary_key=True, autoincrement=True)username = db.Column(db.String(100), nullable=False)password = db.Column(db.String(100), nullable=False)class Message(db.Model):__tablename__ = 'message'id = db.Column(db.Integer, primary_key=True, autoincrement=True)text = db.Column(db.String(100), nullable=False)contnet = db.Column(db.String(100), nullable=False)image=db.Column(db.String(255),nullable=False)# # 执行所有的模型,来创建数据库
# with app.app_context():
#     db.create_all()# 这个如果上面的模型新增了一个字段的话这个表是不会发生变化的,数据库表是不会发生变化,但是新增的模型会添加到数据库中
# 上面的了解即可
# 需要了解和掌握下面的方式
# pip install flask-migrate
# migrate = Migrate(app,db)
# 创建数据库的三个步骤
# 1. flask db init  只需要执行一次
# 2. flask db migrate 识别ORM模型的改变,生成迁移脚本
# 3. flask db upgrade 运行迁移脚本同步到数据库中# 如果字段发生变化,只需要执行后面两个步骤就可以了@app.route('/')
def hello_world():return 'Hello World!'# 添加用户的操作
@app.route('/user/add')
def addUser():user=User(username="张三",password="123456")db.session.add(user) # 添加这个模型对象db.session.commit() # 提交要添加的数据return "添加用户成功"# 修改用户的操作
@app.route('/user/update')
def updateUser():# 拿到这个用户的信息user = User.query.filter_by(username="张三").first()# 完成赋值操作user.password = "111"db.session.commit()return '修改用户成功'# 查找数据库用户信息
@app.route('/user/query')
def searchUser():# 通过get的id的方式进行查询# user = User.query.get(1)# print(user)# print(user.username)# print(user.password)# 通过filter_byusers = User.query.filter_by(username="张三")for user in users:print(user.username)return "查找用户成功"# 删除数据库某条信息
@app.route('/user/delete')
def deleteUser():user =User.query.get(1)db.session.delete(user)db.session.commit()return "删除用户成功"if __name__ == '__main__':app.run()

增删改查的操作,上面都是有注释的,每一个看一眼就行了,很简单的。

增删改查的操作,上面都是有注释的,每一个看一眼就行了,很简单的。

增删改查的操作,上面都是有注释的,每一个看一眼就行了,很简单的。

增删改查的操作,上面都是有注释的,每一个看一眼就行了,很简单的。

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

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

相关文章

我国基本比例尺地形图介绍

目录 1.前言2.大中小比例尺划分3.使用的投影4.使用3度带6度带?5.详细介绍1:100万地形图1:50万地形图1:25万地形图1:10万地形图1:5万地形图1:2.5万地形图1:1万地形图1:5000地形图 6.总结 1.前言 本文搜集整理了我国国家基本比例尺地形图的情况,共11种&…

离线安装ollama到服务器

搜了很多教程不满意,弄了半天才弄好,这里记录下,方便以后的人用,那个在线下载太慢,怕不是得下载到明年。 一.从官网下在liunx版的tgz安装包 Releases ollama/ollama (github.com) 查看自己的服务器信息(参考 https:/…

Face2QR:可根据人脸图像生成二维码,还可以扫描,以后个人名片就这样用了!

今天给大家介绍的是一种专为生成个性化二维码而设计的新方法Face2QR,可以将美观、人脸识别和可扫描性完美地融合在一起。 下图展示为Face2QR 生成的面部图像(第一行)和二维码图像(第二行)。生成的二维码不仅忠实地保留…

WHLUG丨deepin、华中科技大学开放原子开源俱乐部、 RustSBI 和清华大学开源操作系统训练营共话开源新生代成长之路

2024年11月30日下午,由 deepin(深度)社区联合华中科技大学开放原子开源俱乐部、 RustSBI 开源社区和清华大学开源操作系统训练营共同举办的WHLUG(武汉Linux用户组)线下沙龙在华中科技大学成功举办。 本次活动聚集了50余…

排查bug的通用思路

⭐️前言⭐️ APP点击某个按钮没有反应/PC端执行某个操作后,响应较慢,通用的问题排查方法: 从多个角度来排查问题 🍉欢迎点赞 👍 收藏 ⭐留言评论 🍉博主将持续更新学习记录收获,友友们有任何问题可以在评…

Uniapp的App环境下使用Map获取缩放比例

概述 目前我试过的就是你用vue后缀是拿不到比例的你可以用nvue当然uniapp的uvue应该是更加可以的我使用的是高德所以你得在高德的后台声请原生的Android的key才可以如果是vue3的开发模式的话不用使用this来获取当前对象使用scale对象来接受和改变缩放比例会比较友好然后直接走…

如何利用Java爬虫获得商品类目

在当今数字化时代,数据已成为企业最宝贵的资产之一。获取和分析数据的能力对于任何希望在市场上保持竞争力的企业来说都是至关重要的。对于电子商务平台和市场研究公司而言,获取商品类目数据尤为重要,因为这些数据可以帮助他们更好地理解市场…

筑起厂区安全--叉车安全防护装置全解析

在繁忙的工业生产领域中,叉车作为搬运工,穿梭于仓储与生产线之间。然而,叉车的高效运作背后,也隐藏着诸多安全风险,尤其是在那些空间狭小、物流繁忙的环境中。为了降低这些潜在的危险,叉车安全防护装置便成…

AI新动向:豆包文生图升级,文心一言领先市场

在今日的AI资讯中,我们关注到了几个重要的行业动态,其中包括字节跳动AI助手豆包的功能升级,以及百度文心一言在生成式AI市场的领先地位。 字节跳动旗下的智能AI助手豆包近期对其文生图能力进行了显著提升,用户现在可以通过一键操…

【深度学习】手机SIM卡托缺陷检测【附链接】

一、手机SIM卡托用途 SIM卡托是用于固定和保护SIM卡的部件,通过连接SIM卡与手机主板的方式,允许设备访问移动网络,用户可以通过SIM卡进行通话、发送短信和使用数据服务。 二、手机SIM卡托不良影响 SIM卡接触不良,造成信号中断&…

PDF文件打开之后不能打印,怎么解决?

正常的PDF文件是可以打印的,如果PDF文件打开之后发现文件不能打印,我们需要先查看一下自己的打印机是否能够正常运行,如果打印机是正常的,我们再查看一下,文件中的打印功能按钮是否是灰色的状态。 如果PDF中的大多数功…

JUC:读写锁和邮戳锁

1. 面试题 你知道Java里面有那些锁你说说你用过的锁,锁饥饿问题是什么?有没有比读写锁更快的锁StampedLock知道吗?(邮戳锁/票据锁)ReentrantReadWriteLock有锁降级机制,你知道吗? 2. 读写锁&a…

「Mac畅玩鸿蒙与硬件43」UI互动应用篇20 - 闪烁按钮效果

本篇将带你实现一个带有闪烁动画的按钮交互效果。通过动态改变按钮颜色,用户可以在视觉上感受到按钮的闪烁效果,提升界面互动体验。 关键词 UI互动应用闪烁动画动态按钮状态管理用户交互 一、功能说明 闪烁按钮效果应用实现了一个动态交互功能&#xf…

MongoDB的简单使用

MongoDB(文档数据库)的简单使用 MongoDB最好的学习资料就是他的官方文档:SQL 到 MongoDB 的映射图表 - MongoDB 手册 v8.0 1.MongoDB CRUD操作 1.1Insert操作 基本方法: db.collection.insertOne() 将单个文档(document)插入集合中 db.collectio…

chromedriver.exe编译

使用例子参考官网 ChromeDriver 使用入门 | Chrome for Developers Chrome for Testing availability 注意:chromedriver版本要与chromium版本号对应。 如何编译chromedriver chrome\test\chromedriver\BUILD.gn 1、ninja -C out/debug chromedriver_server…

基于MinIO打造高可靠分布式“本地”文件系统

MinIO是一款高性能的对象存储服务,而S3协议是由亚马逊Web服务(AWS)制定的一种标准协议,用于云存储服务之间的数据交换。MinIO与S3协议的关系在于,MinIO实现了S3协议的接口,这意味着用户可以使用与AWS S3相同…

Python_Flask02

所有人都不许学Java了,都来学Python! 如果不来学的话请网爆我的老师 连接前的准备 安装pymysql 和 flask_sqlalchemy,安装第三下面两个所需要的包才能连接上数据库 pip install pymysql pip install flask_sqlalchemy pymysql是一个Pyth…

python学opencv|读取图像(四)imshow()函数尝试

【1】引言 前述已经学习了opencv读取图像的基本操作,包括下述链接: python学opencv|读取图像-CSDN博客 python学opencv|读取图像(二)保存彩色图像-CSDN博客 python学opencv|读取图像(三)放大和缩小图像…

AC高可靠

在真实网络中,一台AC可能要管理上百台AP,因此对与AC的可靠性要求目前有4种解决方案 分别是VRRP双机热备,双链路冷备,双链路热备,N1备份 简述 VRRP双机热备份 主备AC两个独立的IP地址,通过VRRP对外虚拟为同…

docker逃逸总结

一、 检查是否在docker容器中 通过以下两个地方来判断 # 是否存在此文件 ls -al /.dockerenv# 在其中是否包含docker字符串 cat /proc/1/cgroup除了上面两种外还有其他方式判断,如检测mount、fdisk -l查看硬盘 、判断PID 1的进程名等也可用来辅助判断。 容器逃逸…