112.Flask_SQLAlchemy的使用

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)

# 数据库变量
HOST = "localhost"
PORT = 3306
DATA_BASE = "flask_db"
USER = "root"
PWD = "root"
DB_URI = f"mysql+pymysql://{USER}:{PWD}@{HOST}:{PORT}/{DATA_BASE}"

# 定义数据库的路由(URI)
app.config['SQLALCHEMY_DATABASE_URI'] = DB_URI
#FSADeprecationWarning: SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead an
# d will be disabled by default in the future.  Set it to True or False to suppress this warning.
# 需要添加一个参数
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

# 链接数据库
db = SQLAlchemy(app)

# 创建模型类
class User(db.Model):
    __tablename__ = 't_user' # 可以不写,就会默认生成数据表user
    id = db.Column(db.Integer,primary_key = True, autoincrement=True)
    name = db.Column(db.String(32))

    def __repr__(self) -> str:
        return f'User: id={self.id} name={self.name}'

class News(db.Model):
    __tablename__ = 't_news' # 可以不写,就会默认生成数据表user
    id = db.Column(db.Integer,primary_key = True, autoincrement=True)
    content = db.Column(db.String(100))
    uid = db.Column(db.Integer, db.ForeignKey('t_user.id'))

    user = db.relationship("User",backref = 'newss')

    def __repr__(self) -> str:
        return f'User: id={self.id} name={self.content}'

# 创建数据
def create_data():
    user = User(name = "百战")
    news = News(content = "Python内容")
    user.newss.append(news)
    db.session.add(user)
    db.session.commit()

# 查询单表
def query_data_one():
    # 单表查询就直接类名再query即可
    users = User.query.all()
    print(users)

# 多表查询
def query_data_many():
    # 与之前的区别不大,就调用session方法有区别
    rs = db.session.query(User, News.content).join(News, News.uid==User.id).all()
    print(rs)

# 修改数据
def update_data():
    rs = User.query.first()
    rs.name = "nihaoa"
    print(rs)

def delete_data():
    news = News.query.first()
    db.session.delete(news)
    db.session.commit()


if __name__ == "__main__":
    # db.drop_all()
    # db.create_all()
    # create_data()
    # query_data_one()
    # query_data_many()
    update_data()
    delete_data()

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想成为数据分析师的开发工程师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值