Flask学习与项目实战5:通过SQLAlchemy连接数据库进行ORM模型的简单增删改查

举报
bdi洲 发表于 2022/05/20 01:08:07 2022/05/20
【摘要】 SQLAlchemy介绍 是对于数据库的ORM的框架,直接操作模型,安装命令为pip install SQLAlchemy。 SQLAlchemy是一个独立的ORMR框架,可以独立于FLASK存在,也...

SQLAlchemy介绍

是对于数据库的ORM的框架,直接操作模型,安装命令为pip install SQLAlchemy。

SQLAlchemy是一个独立的ORMR框架,可以独立于FLASK存在,也可以在Django中使用。

Flask-SQLAlchemy是对SQLAlchemy的一个封装,更适合在flask使用。

安装

输入命令:pip install flask-sqlalchemy

然后再输入命令:pip install pymysql 这个库是用来连接数据库的
在这里插入图片描述
在这里插入图片描述

from sqlalchemy import create_engine

# 数据库的配置变量
HOSTNAME = '127.0.0.1'
PORT     = '3306'
DATABASE = 'zhou'
USERNAME = 'root'
PASSWORD = 'nidemima'
DB_URI = 'mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8'.format(USERNAME,PASSWORD,HOSTNAME,PORT,DATABASE)

# 创建数据库引擎
engine = create_engine(DB_URI)

#创建连接
with engine.connect() as con:
    rs = con.execute('SELECT 1')
    print rs.fetchone()

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

在这里插入图片描述
其中track第14行代码是跟踪修改。这个可以设置的。(我不设置这个就不能正常运行,好像是py的新版本要求。)

创建数据库表及定义字段

通过方框内代码既可以进行ORM模型的使用,然后create_all()即可创建数据库表了。

#ORM模型
class Article(db.Model):
    __tablename__ = "article"
    id = db.Column(db.Integer,primary_key=True,autoincrement=True)
    title = db.Column(db.String(200),nullable=False)
    content = db.Column(db.Text,nullable=False)

db.create_all()

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

在这里插入图片描述

增加

@app.route("/article")
def article_view():
    #id是自动增长的不需要设置 先建立一个对象 然后进行增加
    article = Article(title="洲的学习笔记",content="洲")
    db.session.add(article)
    #添加
    db.session.commit()
    #提交
    return  "操作成功"

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

在这里插入图片描述

增删改查

@app.route("/article")
def article_view():
        #1.增加数据  id是自动增长的不需要设置
        #article = Article(title="洲的学习笔记",content="洲")
        #db.session.add(article)
        #添加
        #db.session.commit()
        #提交
        #return  "操作成功"

        #2.查询数据
        #article = Article.query.filter_by(id=1)[0]
        #返回一个类列表的对象
        #print(article.title)

        #3.修改数据
        article = Article.query.filter_by(id=1)[0]
        article.content = "zhouzhou"
        db.session.commit()

        #4.删除数据
        article = Article.query.filter_by(id=1).delete()
        db.session.commit()

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

文章来源: blog.csdn.net,作者:洲的学习笔记,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_51484460/article/details/122641766

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。