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

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

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

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

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

相关推荐
不光头强几秒前
object所有方法及知识点
java·开发语言·jvm
.小小陈.5 分钟前
C++进阶7:深入理解哈希表,从原理到 C++ 实践
开发语言·c++·学习·哈希算法
码云数智-大飞6 分钟前
排序算法的终极博弈:从复杂度推导到工程选型实战
开发语言
isxhyeah8 分钟前
python 数据结构 排序算法
数据结构·python·排序算法
喵手13 分钟前
Python爬虫高阶:用 Playwright “监听” Figma 社区热门插件数据!
爬虫·python·爬虫实战·figma·playwright·零基础python爬虫教学·社区热门插件数据采集
MoRanzhi120314 分钟前
Pillow 图像滤波、卷积与边缘处理
图像处理·python·计算机视觉·pillow·卷积·边缘检测·图像滤波
怪侠_岭南一只猿14 分钟前
爬虫学习阶段三:动态网页爬取(完整学习文档)
爬虫·python·学习
南 阳16 分钟前
Python从入门到精通day48
开发语言·python
虎大猫猫18 分钟前
JupyterLab的安装与使用完全指南
ide·python·jupyter