Python_Flask03

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

python 复制代码
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy import text
from flask_migrate import Migrate

app = 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_by
    users = 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()

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

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

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

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

相关推荐
mortimer5 分钟前
【实战复盘】 PySide6 + PyTorch 偶发性“假死”?由多线程转多进程
pytorch·python·pyqt
清静诗意6 分钟前
Django REST Framework(DRF)RESTful 最完整版实战教程
python·django·restful·drf
q***062917 分钟前
搭建Golang gRPC环境:protoc、protoc-gen-go 和 protoc-gen-go-grpc 工具安装教程
开发语言·后端·golang
studytosky31 分钟前
深度学习理论与实战:Pytorch基础入门
人工智能·pytorch·python·深度学习·机器学习
布丁写代码38 分钟前
GESP C++ 一级 2025年09月真题解析
开发语言·c++·程序人生·学习方法
GOTXX1 小时前
用Rust实现一个简易的rsync(远程文件同步)工具
开发语言·后端·rust
诸葛亮的芭蕉扇1 小时前
抓图巡检-底图支持绘制
开发语言·前端·javascript
长不大的蜡笔小新1 小时前
手写数字识别:从零搭建神经网络
人工智能·python·tensorflow
前进的李工1 小时前
LeetCode hot100:094 二叉树的中序遍历:从递归到迭代的完整指南
python·算法·leetcode·链表·二叉树
ins_lizhiming2 小时前
在华为910B GPU服务器上运行DeepSeek-R1-0528模型
人工智能·pytorch·python·华为