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.xdnf.cn/news/34703.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Hive分区值的插入

对于Hive分区表,在我们插入数据的时候需要指定对应的分区值,而这里就会涉及很多种情况。比如静态分区插入、动态分区插入、提供的分区值和分区字段类型不一致,或者提供的分区值是NULL的情况,下面我们依次来展现下不同情况下的表现…

安达发|工业镜头APS高级排产的关键约束

工业镜头生产具有其特定的复杂性,如技术要求高、生产周期长、工序多等特点。在应用APS系统进行高级排产时,需要考虑以下关键约束: 1. 技术与质量约束 - 精度要求:工业镜头对精度的要求极高,这直接影响到排产计划中机加…

【SKFramework框架核心模块】3-9、资源模块

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享QQ群:398291828小红书小破站 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 【Unity3D框架】SKFramework框架完全教程《全…

Swing中密码框组件

一、介绍 密码框(JPasswordField)与文本框的定义和用法基本相同,唯一不同的是密码框将用户输入的字符串以某种符号进行加密。密码框对象是通过javax.swing.JPasswordField类创建的。 二、常用构造方法 1、public JPasswordField() 2、pub…

SpringMVC ——(1)

1.SpringMVC请求流程 1.1 SpringMVC请求处理流程分析 Spring MVC框架也是⼀个基于请求驱动的Web框架,并且使⽤了前端控制器模式(是⽤来提供⼀个集中的请求处理机制,所有的请求都将由⼀个单⼀的处理程序处理来进⾏设计,再根据请求…

【英一】1998年

阅读1 suffering. 苦难at the mercy of. 完全受...的支配do ones bidding. 服从某人threaten to. 可能...(发生不好的事情)do more harm than good. 弊大于利strive to. 争取,努力assert. 主张cement. 巩固bid for. (尤指许下诺言)企图获得&…

BT.1120视频传输协议标准介绍

1.BT.1120 BT.656 协议主要是针对 PAL、NTSC下的标清视频。随着高清视频的发展的需要,又推出了 BT.1120 标准,它与 BT656 有许多类似的地方,不同点在于时钟频率更高了,更加适合高清视频的传输,隔行传输和逐行传输兼备。…

RabbitMQ学习-Eleven

SpringBoot中RabbitMQ的消息确认和Return机制 1.再application.yml文件中开启消息确认机制和return机制 spring:rabbitmq:publisher-confirm-type: simplepublisher-returns: true 2.创建confirm和return监听 // MsgConfirmAndReturn.java 中的代码片段Component public cla…

GAMES101 完结篇(笔记和作业)

写在前面 我已经把笔记和作业代码放在了GitHub上,欢迎访问GAMES101笔记及作业 (github.com),如果对你有帮助,欢迎fork or star 下面我想简单介绍一下这里面的东西 Homework Homework文件夹里有0~8的作业框架,参考的其他大佬的代…

修改mobaxterm字体为全绿色

修改前: 修改步骤步骤: 红色方框里面的颜色都改为绿色,然后点击OK 重启mobaxterm即可:

vue+mars3d叠加展示arcgis动态服务

数据格式:使用arcgis发布的动态服务 叠加和移除arcgis服务图层的方法 //加载arcgis地图服务function arcgisServer(i,d,m,p){i[d.data] new mars3d.layer.ArcGisLayer({name:d.label,url:p,flyTo: true})m.addLayer(i[d.data])}//移除arcgis服务范围线function rem…

模型案例:| 手机识别模型!

导读 2023年以ChatGPT为代表的大语言模型横空出世,它的出现标志着自然语言处理领域取得了重大突破。它在文本生成、对话系统和语言理解等方面展现出了强大的能力,为人工智能技术的发展开辟了新的可能性。同时,人工智能技术正在进入各种应用领…

241205_给自己的应用加上语音助手功能

241205_给自己的应用加上语音助手功能 前面我们自己做了一个网易云音乐,但每次都要去点点点显得有点麻烦,所以我就考虑添加一些语音助手的功能。 其实当前在日常windows使用中,我觉得也就音乐播放需要一个语音助手交互,其他的功…

Navicat连接服务器MySQL

Navicat连接服务器MySQL 1. Navicat连接服务器MySQL2. 如何查看MySQL用户名和密码3. 修改MySQL登录密码4. 安装MySQL(Centos7)遇到错误和问题 1. error 1045 (28000): access denied for user ‘root’‘localhost’ (using password:yes) 1. Navicat连接服务器MySQL 选择数据…

得物新一代可观测性架构:海量数据下的存算分离设计与实践

一、引言 得物作为全球领先的潮流网购社区,日益增长的用户和数据带来了巨大的技术挑战。当前,得物的可观测性平台每天生成数PB级Trace数据和数万亿条Span记录,要求平台具备高效的实时处理能力和低成本的数据存储解决方案。 传统的存算一体架…

​ 基于51单片机的智能公交车报站系统GPS定位语音播报智能安全检测人数统计

功能介绍 以51单片机为控制核心.LCD12864可显示当前年月日,星期,时间, 当前站名,经纬度,是否连接GPS,自动/手动模式,自带GPS定位,可实时显示经纬度;通过DS1302时钟芯片…

Gitee配置SSH公钥

采用SSH协议同步Git仓库代码的好处就是高效。在配置好SSH公钥后,不需要每次操作都要输入用户名和密码(主要针对命令行来说)。 以我个人项目为例。 生成 SSH 公钥 1. 通过命令 ssh-keygen 生成 SSH Key: ssh-keygen -t ed25519…

CV(2)-插值和卷积

前言 仅记录学习过程,有问题欢迎讨论 看看年前可以学到哪。 频率: 灰度值变化程度的指标,是灰度再平面上的梯度幅值: 幅值: 是在一个周期内,交流电瞬时出现的最大绝对值,也是一个正弦波,波…

D362 php+mysql旅游服务网站的设计与实现 源码 配置 文档 全套资料

旅游服务网站的设计与实现 1.摘要2.开发目的和意义3.系统功能设计4.系统界面截图5.源码获取 1.摘要 近几年,随着我国国民经济和信息技术的迅速发展,旅游项目的开发和建设,已是我国旅游业发展重要经济来源之一,我国旅游业近几年的…

python——列表

目录 一,选择题 二,判断题 三,列表的思维导图 一,选择题 1.已知列表 xlist(range(9)),那么执行之后,x的值为( D ) A. [1,3,5,7,9] B.[1,3,5,7] C.[0,1…