资讯专栏INFORMATION COLUMN

flask笔记:flask与数据库的交互

elliott_hu / 609人阅读

摘要:下面的两种方式不仅限于,其实就是对数据库操作的具体实现。第一种方式针对查询定义数据库属性创建数据库连接对象第二种方式针对增删改,有事务定义数据库属性创建数据库连接对象

官方推荐使用flask-sqlalchemy,但是这里我个人并不推荐。因为一般后台程序员其实更喜欢使用原生sql语言处理数据库的问题,更重要的一个原因是在项目上线后,处理一些运维问题时,如果可以查看sql语句可以更快找到问题。其次flask-sqlalchemy是在sqlalchemy基础上封装了一层,从编译的角度看效率上肯定会低一些(效率的影响也许微乎其微)。

基于以上原因,我推荐使用sqlalchemy进行开发。

下面的两种方式不仅限于flask,其实就是python对数据库操作的具体实现。

第一种方式(针对查询):

from sqlalchemy import create_engine,text
#定义数据库属性
hostname = "127.0.0.1"
port = "3306"
database = "dbname"
username = "root"
pwd = "pwd"
dburl = "mysql+mysqldb://{}:{}@{}:{}/{}".format(username,pwd,hostname,port,database)
#创建数据库连接对象
engine = create_engine(dburl,echo=True)
with engine.connect() as con:
  rs = con.execute("SELECT 1")  # con.execute(text("select 1 "))
  for row in rs:
    print row

第二种方式(针对增删改,有事务):

from sqlalchemy import create_engine,text
from sqlalchemy.orm import sessionmaker
#定义数据库属性
hostname = "127.0.0.1"
port = "3306"
database = "dbname"
username = "root"
pwd = "pwd"
dburl = "mysql+mysqldb://{}:{}@{}:{}/{}".format(username,pwd,hostname,port,database)
#创建数据库连接对象
engine = create_engine(dburl,echo=True)
Session = sessionmaker(bind=engine)
session = Session()
session.execute("insert test values ("abc","123")")
session.commit()
session.close()

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/44572.html

相关文章

  • flask笔记:是flask.ext.sqlalchemy还是flask_sqlalchemy

    摘要:首先出结论,和是一个意思,区别是写法不同,兼容性不同。是特有的拓展功能,目前,扩展必须支持以及原因扩展导入转换我们推荐使用扩展的命名空间包。相反,我们现在推荐命名软件包,而不是现在已弃用的。 最近入门python的flask框架,官方推荐用sqlalchemy库作为与数据库交互的工具。这时我在看网络上一些文章资料时发现一个问题。 这里插个题外话,sqlalchemy和flask_sql...

    DandJ 评论0 收藏0
  • flask文档学习笔记1-快速入门

    摘要:示例如下静态路由使用动态变量的路由未指定变量类型使用动态变量的路由指定变量类型指定的路由变量,可以作为被装饰的函数参数传入进来。 开始决定认真的在网上写一些东西,主要原因还是在于希望能提升学习效果。虽说python写了有几年,但是web后端框架的确没怎么接触过,买了本狗书寥寥草草的过了一遍,发现很多东西还是理解不深,真的是好记性不如烂笔头,知识也要从基础开始,退回来好好看看官方文档,再...

    lingdududu 评论0 收藏0
  • Python学习笔记:Web后端开发一览

    摘要:试想,在多线程服务器中,多个线程同时处理不同客户端发送的不同请求时,每个线程看到的对象必然不同。多线程服务器会创建一个线程池,再从线程池中选择一个线程用于处理接收到的请求。 框架 Django flask flask是一个轻量的web开发应用示例开发一个小应用 from flask import Flask app = Flask(__name__) @app.route(/) d...

    DrizzleX 评论0 收藏0
  • [译]如何使用Flask开发一个增删改查应用

    摘要:教程译文首发自我的博客我们将创建一个简单的数据库驱动的笔记本应用。本教程面向想学习如何使用开发网站或者应用的初学者。在刚创建的文件中,创建一个名为的文件。现在,我们将创建一个函数,并且使用装饰器将它绑定到一个上。 showImg(https://segmentfault.com/img/remote/1460000006765797); 教程译文首发自我的博客:Defshines Bl...

    tianlai 评论0 收藏0
  • Flask 源码阅读笔记 开篇

    摘要:官方示例第一行类对象,这个无需解释。请求对象的端点请求视图函数的参数通过源码的注释我们可以知道,都只是对库的进行了一层包装并加入一些属性。接下来会有更多关于和相关文章放出来,敬请期待参考文档项目源码版本注释版 Flask 是一个 Python 实现的 Web 开发微框架, 有丰富的生态资源。本文从一段官方的示例代码通过一步步打断点方式解释 Flask 内部的运行机制,在一些关键概念会...

    mikyou 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<