精华内容
下载资源
问答
  • sqlalchemy连接mysql
    千次阅读
    2021-12-16 10:22:12

    python2.7:

            pip install sqlalchemy==1.4.27

            pip install mysql-connector-python-rf==2.2.2

    from sqlalchemy import create_engine
    from sqlalchemy.orm import sessionmaker
    
    engine = create_engine(
        'mysql+mysqlconnector://root:127.0.0.1:3306/test')
    DBSession = sessionmaker(bind=engine)
    session = DBSession()
    execute_result = session.execute(
        "select * from table_A limit 1"
    )
    result = execute_result.fetchall()
    session.close()
    print(result)

    更多相关内容
  • 在python中,使用sqlalchemy连接mysql数据库进行操作非常简单方便。什么是orm:orm英文全称object relational mapping,就是对象映射关系程序,简单来说我们类似python这种面向对象的程序来说一切皆对象,但是我们...

    环境:centos7+python2.7.5+sqlalchemy

    sqlalchemy是python当中比较出名的orm程序。在python中,使用sqlalchemy连接mysql数据库进行操作非常简单方便。

    什么是orm:

    orm英文全称object relational mapping,就是对象映射关系程序,简单来说我们类似python这种面向对象的程序来说一切皆对象,但是我们使用的数据库却都是关系型的,为了保证一致的使用习惯,通过orm将编程语言的对象模型和数据库的关系模型建立映射关系,这样我们在使用编程语言对数据库进行操作的时候可以直接使用编程语言的对象模型进行操作就可以了,而不用直接使用sql语言。

    安装sqlalchemy

    在使用sqlalchemy之前要先给python安装mysql驱动,这里推荐使用pymysql。  下载地址:https://github.com/PyMySQL/PyMySQL

    python setup.py install

    安装后检查

    >>>import pymysql

    然后再安装sqlalchemy 。 下载地址:https://github.com/zzzeek/sqlalchemy

    python setup.py install安装后检查

    >>>import sqlalchemy

    如何使用sqlalchemy连接mysql?

    通过import导入必要的包

    from sqlalchemy import create_engine,Table,Column,Integer,String,MetaData,ForeignKey

    创建元数据

    什么是元数据?元数据就是描述数据的数据,举个简单的例子,小明身高175cm,体重65kg,性别男。其中身高,体重,性别就是元数据。当我们创建好连接引擎以后可以通过这个引擎抓取元数据。

    metadata=MetaData(engine)

    通过MetaData()方法创建了metadata实例,在这个方法里面带上engine的目的是绑定要连接引擎,当我们对这个metadata实例进行操作的时候就会直接连接到数据库。

    创建一个连接引擎

    engine=create_engine("mysql+pymysql://root:123456@localhost:3306/test",echo=True)

    我们将连接引擎放到engine里面方便后面使用。

    create_engine("数据库类型+数据库驱动://数据库用户名:数据库密码@IP地址:端口/数据库",其他参数)

    上文当中echo=True是开启调试,这样当我们执行文件的时候会提示相应的文字。

    添加表结构

    设定好连接引擎和元数据,让我们向mysql里面创建表结构来进行测试。

    user_table = Table('user',metadata,

    Column('id',Integer,primary_key=True),

    Column('name',String(20)),

    Column('fullname',String(40)),

    )

    address_table = Table('address', metadata,

    Column('id', Integer, primary_key=True),

    Column('user_id', None, ForeignKey('user.id')),

    Column('email', String(128), nullable=False)

    )

    其中Table()方法用来创建表,第一个参数为表名,第二是存入元数据,后面的参数使用Column()方法将数据库当中每一个字段的数据参数设置好。

    执行创建

    metadata.create_all()

    因为已将将表结构存到了metadata里面,然后让metadata执行create_all()方法,这样就向数据库里创建了user和address表。

    完成代码

    #vim sqlalchemy_test1.py

    展开全文
  • SQLAlchemy采用简单的Python语言,提供高效和高性能的数据库访问,实现了完整的企业级持久模型。SQLAlchemy 是目前python中最强大的 ORM框架, 功能全面。 Flask-SQLAlchemy 是一个为 Flask 应用插件,封装了...

    前言

    SQLAlchemy采用简单的Python语言,提供高效和高性能的数据库访问,实现了完整的企业级持久模型。SQLAlchemy 是目前python中最强大的 ORM框架, 功能全面。
    Flask-SQLAlchemy 是一个为 Flask 应用插件,封装了SQLAlchemy,简化了操作,只需添加配置项就可以在Flask 项目中使用。

    Flask-SQLAlchemy 环境准备

    Flask 使用版本v2.2.2

    先安装连接 mysql 驱动包 pymysql

    pip install pymysql
    

    安装Flask-SQLAlchemy 应用插件

    pip install flask-sqlalchemy
    

    相关版本

    初始化配置

    sqlalchemy 连接数据库,需要使用到一些配置信息,组合成满足以下条件的字符串:

    dialect+driver://username:password@host:port/database
    

    相关配置参数说明

    配置参数说明
    dialect数据库,如:sqlite、mysql、oracle等
    driver数据库驱动,如前面安装的:pymysql
    username登录数据库用户名
    password登录数据库密码
    host数据库部署 IP 地址
    port端口
    database数据库库名

    拼接地址示例

    # 拼接配置dialect + driver://username:passwor@host:port/database
    DB_URI = 'mysql+pymysql://root:123456@localhost:3306/web'
    

    flask-sqlalchemy 的相关配置封装到了 flask 的配置项中, 可以通过app.config属性 或 配置加载方案 (如config.from_object) 进行设置

    配置选项说明
    SQLALCHEMY_DATABASE_URI连接数据库。示例:mysql://username:password@host/post/db?charset=utf-8
    SQLALCHEMY_BINDS一个将会绑定多种数据库的字典。
    SQLALCHEMY_ECHO记录打印SQL语句用于调试的, 一般设置为False, 不然会在控制台输出一大堆的东西
    SQLALCHEMY_POOL_SIZE数据库池的大小,默认值为5。
    SQLALCHEMY_POOL_TIMEOUT连接超时时间
    SQLALCHEMY_POOL_RECYCLE自动回收连接的秒数。
    SQLALCHEMY_MAX_OVERFLOW控制在连接池达到最大值后可以创建的连接数。当这些额外的 连接回收到连接池后将会被断开和抛弃。
    SQLALCHEMY_TRACK_MODIFICATIONS如果设置成 True (默认情况),Flask-SQLAlchemy 将会追踪对象的修改并且发送信号。这需要额外的内存, 如果不必要的可以禁用它。

    使用示例

    添加配置

    from flask import Flask, url_for, request, redirect, render_template
    
    app = Flask(__name__)
    # 设置数据库连接地址
    DB_URI = 'mysql+pymysql://root:123456@127.0.0.1:3306/web'
    app.config['SQLALCHEMY_DATABASE_URI'] = DB_URI
    # 是否追踪数据库修改,一般不开启, 会影响性能
    app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
    # 是否显示底层执行的SQL语句
    app.config['SQLALCHEMY_ECHO'] = True
    

    初始化对象,关联到flask 项目, 有两种方式

    方法一:直接在初始化的时候传app参数

    # 初始化组件对象, 直接关联Flask应用
    db = SQLAlchemy(app)
    

    方法二:使用db.init_app(app)方法

    # 先实例化,后关联app
    db = SQLAlchemy()
    # 初始化db,关联flask 项目
    db.app = app    # 这一步需先设置属性,很多老的教程都缺少这一步,导致连不上数据库
    db.init_app(app)
    

    查询示例,可以直接执行原生SQL语句,主要是检查下有没正确链接数据库,查询到结果

    # 执行原生SQL语句, 测试下能不能查询到结果
    sql = 'select * from parent'
    result = db.session.execute(sql)
    print(result.fetchall())
    

    查询结果

    [(1, 'yy', 'yoyo'), (2, 'yy', 'yoyo'), (3, 'yy', 'yoyo')...]
     * Serving Flask app 'app.py'
     * Debug mode: on
    

    完整代码

    from flask import Flask, url_for, request, redirect, render_template
    from flask_sqlalchemy import SQLAlchemy
    
    app = Flask(__name__)
    # 设置数据库连接地址
    DB_URI = 'mysql+pymysql://root:123456@127.0.0.1:3306/web'
    app.config['SQLALCHEMY_DATABASE_URI'] = DB_URI
    # 是否追踪数据库修改,一般不开启, 会影响性能
    app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
    # 是否显示底层执行的SQL语句
    app.config['SQLALCHEMY_ECHO'] = True
    
    # 初始化db,关联flask 项目
    db = SQLAlchemy(app)
    
    
    # 执行原生SQL语句, 测试下能不能查询到结果
    sql = 'select * from parent'
    result = db.session.execute(sql)
    print(result.fetchall())
    
    if __name__ == '__main__':
        app.run()
    
    展开全文
  • Python+Flask安装:... 这个时候去看表是否创建成功,下面我这个是成功的: 没错,这个article就是我创建的表,到此,成功的将flask_sqlalchemymysql连接起来。 nice! 记录此文,记录我的成长!

    Python+Flask安装:https://www.jianshu.com/p/cd1925e90eda

    Flask路径参数以及请求参数讲解:https://www.jianshu.com/p/54057b4f0437

    首先安装pymysql,命令如下:

    pip install pymysql

    安装过程中看到成功就可以。

    1ba45bd6c351可以看到我的pymysql版本为0.9.3

    pymysql是安装flask_sqlalchemy的前提,接下来安装flask_sqlalchemy,如下:

    pip install flask-sqlalchemy

    命令执行完后如下是成功的:

    1ba45bd6c351

    接下来安装MySQL数据库

    1.从官网下载免安装版压缩包mysql-8.0.12-winx64.zip,下载地址:https://dev.mysql.com/downloads/mysql

    2.解压到目录(自定义,禁中文):E:\MySQL-8.0.13

    3.在目标目录(E:\MySQL-8.0.13\mysql-8.0.13-winx64)下创建my.ini文件,内容如下:

    [mysqld]

    # 绑定IPv4

    bind-address=0.0.0.0

    # 设置mysql的安装目录,即你解压缩安装包的位置

    basedir=E:\MySQL-8.0.13\mysql-8.0.13-winx64

    # 设置mysql数据库的数据的存放目录

    datadir=E:\MySQL-8.0.13\mysql-8.0.13-winx64/data

    # 设置端口号

    port=3306

    # 允许最大连接数

    max_connections=200

    # 开启查询缓存

    explicit_defaults_for_timestamp=true

    # 创建表使用的默认存储引擎

    default-storage-engine=INNODB

    # 设置服务端的默认字符集

    character-set-server=utf8

    [mysql]

    # 设置mysql客户端默认字符集

    default-character-set=utf8

    4.在目标目录下创建文件夹data(若已存在,清空)

    5.配置环境变量,配完点击确定-->确定-->确定,以保证生效:

    6.安装mysql服务,并初始化

    1)以管理员权限打开cmd窗口

    2)执行安装命令:

    mysqld --install MySQL --defaults-file="E:\MySQL-8.0.13\mysql-8.0.13-winx64\my.ini"

    注:my.ini文件必须是全路径

    3)执行初始化命令:

    mysqld --initialize

    7.启动mysql服务,执行以下命令:

    net start mysql

    8.修改root用户密码

    1)在E:\MySQL-8.0.13\mysql-8.0.13-winx64\data目录下的*.err文件中查找系统为root用户生成的随机密码。

    2)使用查找到的密码登录mysql:

    mysql -uroot -p你的随机密码

    3)修改root用户密码:

    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';

    以上完成了falsk_sqlalchemy和mysql的安装,接下来配置文件:

    首先在pyvenv.cfg中修改一个东西,设置include-system-site-packages的值为true。

    include-system-site-packages = true

    创建数据库连接的配置:

    config.py

    DIALECT = 'mysql'

    DRIVER = 'pymysql'

    USERNAME = 'root'

    PASSWORD = '123456'

    HOST = '127.0.0.1'

    PORT = '3306'

    DATABASE = 'pythonflask'

    SQLALCHEMY_DATABASE_URI = "{}+{}://{}:{}@{}:{}/{}?charset=utf8".format(DIALECT, DRIVER, USERNAME, PASSWORD, HOST, PORT,

    DATABASE)

    数据库的连接配置完成后,需要在主程序中设置如下:

    import uuid

    from flask import Flask, request, json, Response

    from flask_sqlalchemy import SQLAlchemy

    import config

    app = Flask(__name__)

    app.config.from_object(config)

    db = SQLAlchemy(app)

    class Article(db.Model):

    __tablename__ = 'article'

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)

    title = db.Column(db.String(100), nullable=False)

    content = db.Column(db.Text, nullable=False)

    db.create_all()

    运行程序成功,出现了一个警告:

    FSADeprecationWarning: SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disabled by default in the future. Set it to True or False to suppress this warning.

    'SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and '

    看着不舒服,可以在config.py中设置:

    SQLALCHEMY_TRACK_MODIFICATIONS = False

    再次运行程序即可。

    这个时候去看表是否创建成功,下面我这个是成功的:

    1ba45bd6c351

    没错,这个article就是我创建的表,到此,成功的将flask_sqlalchemy和mysql连接起来。

    nice!

    记录此文,记录我的成长!

    展开全文
  • “导语:这期主要学一下利用SQLALchemy连接MySql数据库以及对数据库的增删改查的操作,可能代码部分很多还不能理解,我觉得像一些固定写法先用着(比如引入的类等),再慢慢体会缘由”01—连接数据库并进行操作[ORM...
  • pip3 install Flask-SQLAlchemy测试环境目录结构配置settings.pyDIALECT = 'mysql'DRIVER = 'pymysql'USERNAME = 'root'PASSWORD = '808069'HOST = '127.0.0.1'PORT = '3306'DATABASE = 'cms'SQLALCHEMY_DATABASE_...
  • Flask项目-使用flask_sqlalchemy连接MySQL数据库并创建数据表
  • sqlalchemy连接mysql数据库失败

    千次阅读 2019-04-02 16:31:26
    1出现此报错的原因是使用的mysql8.0 以前用的是:tx_isolation 现在用是:transaction_isolation a.通过升级 sqlalchemy 的方法可以解决此问题,pip install -i ...
  • from flask_sqlalchemy import SQLAlchemyimport mysqlimport MySQLdbapp = Flask(__name__)app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:1234@localhost:3306/testbase?charset=utf8mb4'app.config['SQL...
  • sqlalchemy 连接使用 MySQL

    千次阅读 2022-04-05 14:03:41
    from sqlalchemy import create_engine # 连接 connwin = create_engine('mysql+pymysql://root:123456@localhost:3306/db?charset=utf8') 插入数据库 result 为 DataFrame 类型的数据,可通过 to_sql 方法...
  • Sqlalchemy连接mysql数据库
  • sqlalchemy如何连接mysql数据库?

    千次阅读 2021-02-06 00:49:34
    sqlalchemy是python知名的数据库管理框架,sqlalchemy独立于Flask而存在的,这是它与...在使用sqlalchemy 之前、确保你电脑安装了以下几款软件、包:1、mysql数据库(个人比较推荐Navicat Premium)2、pymysql包(pytho...
  • 这个问题编辑器不会报错,安装sqlalchemy也不会自动安装连接mysql的工具,因为sqlalchemy无法预知你想要连接什么数据库,只有在使用的时候会使用pymysql 连接,但是环境中没有这个库,所以会报错
  • 使用sqlalchemy连接mysql时出现sqlalchemy.exc.OperationalError错误1130 错误如图所示: **解决方法:**将SQLALCHEMY_DATABASE_URI中的主机名改为localhost
  • flask_sqlalchemy连接Mysql数据库

    千次阅读 2020-07-21 19:51:52
    【注】 1、由于是建立的flask项目,所以不能直接点绿色按钮运行,如图: 2、应该在terminal终端中运行python myfile.py,并且在main函数不能加 app.run(),否则不能成功...from flask_sqlalchemy import SQLAlchemy
  • from sqlalchemy import create_engine,Table,Column,Integer,String,MetaData,ForeignKeyengine=create_engine("mysql+pymysql://root:a5230411@localhost:3306/test",echo=True)metadata=MetaData(engine)user=Tab...
  • 本文将介绍如何使用SQLAlchemy操作MySQL,完成基础的表创建,表格数据的新增、查询、修改、删除(CRUD)等操作。 首先我们需要确认当前的Python环境下已经安装sqlalchemy和pymysql模块。 新建表格 我们使用本地的...
  • SQLAlchemy连接MySQL数据库的方法

    千次阅读 2018-12-29 11:06:30
    在使用python的SQLAlchemy时,连接字符串的格式如下: 数据库产品名+连接工具名://用户名:密码@数据库IP地址:数据库端口号/数据库名称?charset=数据库数据编码 但是对于新手或者刚刚安装anaconda的使用者来说...
  • 连接自己电脑上的sqlserver,一直连接不上。突然想起直接使用pymssql连接时候不用端口号 pymssql连接示例 ip = 'localhost' username = 'sa' password = '20190218' datebase = '2021DRGS' conn = pymssql.conn
  • 在上面我们已经说了单表的一些操作,现在我们说一下多表的连接 >>> from sqlalchemy import distinct >>> from sqlalchemy.orm import aliased >>> Astu = aliased(Stu,'Astu') >>> A
  • 这个问题的经典答案是使用主机的127.0.0.1或...从documentation:[...] connections on Unix to localhost are made using a Unix socket file by default之后:On Unix, MySQL programs treat the host name local...
  • SQLALchemy之Python连接MySQL

    万次阅读 多人点赞 2019-05-10 12:46:50
    下面的代码是使用Python语言,连接MySQL数据库的示例。 from sqlalchemy import create_engine from sqlalchemy . orm import sessionmaker engine = create_engine ( "mysql+pymysql://root:@ROOT_root...
  • python3 使用sqlalchemy连接mysql数据库报错ModuleNotFoundError: No module named 'MySQLdb'原因连接数据库demo 原因 连接mysql默认驱动是MySQLdb,MySQLdb没有支持python3的版本,如果使用python3.x版本时,需要...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,269
精华内容 4,907
关键字:

sqlalchemy连接mysql

mysql 订阅