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

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

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

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

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

相关推荐
(・Д・)ノ4 分钟前
python打卡day22
python
DanB2432 分钟前
Java笔记4
java·开发语言·笔记
achene_ql36 分钟前
深入探索 RKNN 模型转换之旅
python·目标检测·rk3588·模型部署·rk3566
Dddle140 分钟前
C++:this指针
java·c语言·开发语言·c++
studyer_domi44 分钟前
Matlab 234-锂电池充放电仿真
开发语言·matlab
yuanpan1 小时前
.net/C#进程间通信技术方案总结
开发语言·c#·.net
吃面不喝汤661 小时前
破解 Qt QProcess 在 Release 模式下的“卡死”之谜
开发语言·qt
@十八子德月生1 小时前
8天Python从入门到精通【itheima】-1~5
大数据·开发语言·python·学习
jiunian_cn1 小时前
【c++】异常详解
java·开发语言·数据结构·c++·算法·visual studio
martian6652 小时前
信创生态核心技术栈:数据库与中间件
开发语言·中间件·系统架构·系统安全·创业创新