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()

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

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

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

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

相关推荐
多多*3 分钟前
Java复习 操作系统原理 计算机网络相关 2025年11月23日
java·开发语言·网络·算法·spring·microsoft·maven
p***434816 分钟前
Rust网络编程模型
开发语言·网络·rust
ᐇ95928 分钟前
Java集合框架深度实战:构建智能教育管理与娱乐系统
java·开发语言·娱乐
不知更鸟42 分钟前
前端报错:快速解决Django接口404问题
前端·python·django
4***72131 小时前
【玩转全栈】----Django模板语法、请求与响应
数据库·python·django
梁正雄1 小时前
1、python基础语法
开发语言·python
强化学习与机器人控制仿真1 小时前
RSL-RL:开源人形机器人强化学习控制研究库
开发语言·人工智能·stm32·神经网络·机器人·强化学习·模仿学习
百***48071 小时前
【Golang】slice切片
开发语言·算法·golang
q***92512 小时前
Windows上安装Go并配置环境变量(图文步骤)
开发语言·windows·golang
仟濹2 小时前
【Java 基础】面向对象 - 继承
java·开发语言