• flask-sqlalchemy连接数据库


    1、安装flask_sqlalchemy和pymysql

    pip install flask-sqlalchemy
    pip install pymysql

    2、进行配置

    使用Flask-SQLAlchemy扩展操作数据库,首先需要通过URL建立数据库连接,必须保存到Flask配置对象的SQLALCHEMY_DATABASE_URI中。

    1. HOSTNAME = '127.0.0.1'
    2. PORT = '3306'
    3. DATABASE = 'flask_test'
    4. USERNAME = 'root'
    5. PASSWORD = 'root'
    6. DB_URI = 'mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8'.format(USERNAME,PASSWORD,HOSTNAME,PORT,DATABASE)
    7. app.config['SQLALCHEMY_DATABASE_URI'] = DB_URI

    其中HOSTNAME为路由地址

    PORT为端口号,我在创建数据库时没有更改,所以用的默认的3306端口号

    DATABASE为数据库名字

    后面两个参数为数据库用户名和密码

    3、创建SQLALchemy实例

    db = SQLAlchemy(app)

    我这里创建的实例记为db

    4、创建ORM类

    创建这个类必须继承db.Model !!!

    1. class Article(db.Model):
    2. __tablename__ = "article"
    3. id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    4. title = db.Column(db.String(200), nullable=False)
    5. content = db.Column(db.Text, nullable=False)

    第二行设置数据库表名为article。第三行设置id项,将其设置为整数项,并且设置为主键以及自动增长。第四行设置title项,将其设置为含200个字符的字符串,并设置不能非空。第五行设置content项,将其设置为db.Text格式并且设置不能非空。

    5、创建表

    db.create_all()

    然后就会发现,数据库中多出一张表:

    当然,这张表目前还是空的

     6、在表中增删查改数据

     我们可以在一个视图函数中执行这些操作,当然也可以直接执行

    1. @app.route("/article")
    2. def article_view():
    3. # 添加数据
    4. article = Article(title="钢铁是怎样炼成的", content="xxx")
    5. db.session.add(article)
    6. db.session.commit()
    7. # # 查询数据
    8. # article = Article.query.filter_by(id=1)[0]
    9. # print(article.title)
    10. #
    11. # # 修改数据
    12. # article = Article.query.filter_by(id=1)[0]
    13. # article.content = "yyy"
    14. # db.session.commit()
    15. #
    16. # # 删除数据
    17. # article = Article.query.filter_by(id=1)[0]
    18. # db.session.delete(article)
    19. # db.session.commit()
    20. return "数据操作成功"

    添加数据时没加id,是因为我们之前设置id的autoincrement为True,于是它会自动增加。 

    执行完发现数据库中多出了如下: 

    其他三步结果请自行查看。当然,如果想观察每一步的结果,在执行添加数据前最好最好先将其他三步加上注释,对于其他三步也是一样。

  • 相关阅读:
    Vue项目实战——【基于 Vue3.x + NodeJS】实现的课程表排课系统二(week-title)
    室友打了一晚上游戏我学会了使用GDB调试
    如何优化谷歌商店里应用的评分评论1
    金融信创,软件规划需关注自主安全及生态建设
    Ubuntu ARMv8编译Qt源码以及QtCreator
    跟我学Python图像处理丨关于图像金字塔的图像向下取样和向上取样
    【Pandas数据处理100例】(八十五):Pandas将DataFrame数据转化成字典数据
    发送QQ邮件
    Linux网络抓包分析工具(tcpdump、wireshark)
    【HTML】HTML网页设计----动漫网站设计
  • 原文地址:https://blog.csdn.net/qq_55621259/article/details/126661725