Flask使用SQLAlchemy连接mysql

models.py

from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column
from sqlalchemy import Integer,String,Text,Date,DateTime
from sqlalchemy import create_engine

Base = declarative_base()

class Users(Base):
    __tablename__ = ‘users‘

    id = Column(Integer, primary_key=True)
    name = Column(String(32), index=True, nullable=False)

def create_all():
    engine = create_engine(
        "mysql+pymysql://root:[email protected]:3306/s9day120?charset=utf8",
        max_overflow=0,  # 超过连接池大小外最多创建的连接
        pool_size=5,  # 连接池大小
        pool_timeout=30,  # 池中没有线程最多等待的时间,否则报错
        pool_recycle=-1  # 多久之后对线程池中的线程进行一次连接的回收(重置)
    )

    Base.metadata.create_all(engine)

def drop_all():
    engine = create_engine(
        "mysql+pymysql://root:[email protected]:3306/s9day120?charset=utf8",
        max_overflow=0,  # 超过连接池大小外最多创建的连接
        pool_size=5,  # 连接池大小
        pool_timeout=30,  # 池中没有线程最多等待的时间,否则报错
        pool_recycle=-1  # 多久之后对线程池中的线程进行一次连接的回收(重置)
    )
    Base.metadata.drop_all(engine)

if __name__ == ‘__main__‘:
    create_all()

views.py

from sqlalchemy.orm import sessionmaker
from sqlalchemy import create_engine
from models import Users

# 创建引擎
engine = create_engine(
        "mysql+pymysql://root:[email protected]:3306/s9day120?charset=utf8",
        max_overflow=0,  # 超过连接池大小外最多创建的连接
        pool_size=5,  # 连接池大小
        pool_timeout=30,  # 池中没有线程最多等待的时间,否则报错
        pool_recycle=-1  # 多久之后对线程池中的线程进行一次连接的回收(重置)
    )

# 根据引擎创建session工厂
SessionFactory = sessionmaker(bind=engine)

# 用session工厂创建一个session对象
session = SessionFactory()

..........
# 根据Users类对users表进行增删改查
..........

# 关闭session
session.close()

操作

obj = Users(name=‘alex‘)
session.add(obj)
session.commit()

session.add_all([
        Users(name=‘小东北‘),
        Users(name=‘龙泰‘)
])
session.commit()

session.query(Users).filter(Users.id >= 2).delete()
session.commit()

session.query(Users).filter(Users.id == 4).update({Users.name:‘东北‘})
session.query(Users).filter(Users.id == 4).update({‘name‘:‘小东北‘})
session.query(Users).filter(Users.id == 4).update({‘name‘:Users.name+"DSB"},synchronize_session=False)
session.commit()

result = session.query(Users).all()
for row in result:
        print(row.id,row.name)

result = session.query(Users).filter(Users.id >= 2)
for row in result:
        print(row.id,row.name)

result = session.query(Users).filter(Users.id >= 2).first()
print(result)

原文地址:https://www.cnblogs.com/jiangchunsheng/p/9204428.html

时间: 2024-11-05 20:37:33

Flask使用SQLAlchemy连接mysql的相关文章

Python中使用SQLAlchemy连接Mysql数据库2(多表连接操作)

http://blog.csdn.net/u011573853/article/details/51355113 在上面我们已经说了单表的一些操作,现在我们说一下多表的连接 >>> from sqlalchemy import distinct >>> from sqlalchemy.orm import aliased >>> Astu = aliased(Stu,'Astu') >>> Acla = aliased(Cla,'Ac

Python中使用SQLAlchemy连接Mysql数据库(单表操作)

一,SQLAlchemy的安装 使用 $ easy_install sqlalchemy 或 $ pip install sqlalchemy 如果出现什么错,就进去root用户下进行安装试试,或者网上查查 >>> import sqlalchemy >>> 这样说明成功了,切记是小写哦 二,使用 理论我也不懂,自己查查资料,现在用一个小的案例说一下使用步骤 1,在进行数据操作之前要先连上数据库. >>> from sqlalchemy import

sqlalchemy连接 MySQL(转)

from sqlalchemy import create_engine,Table,Column,Integer,String,MetaData,ForeignKey engine=create_engine("mysql+pymysql://root:[email protected]:3306/test",echo=True) metadata=MetaData(engine) user=Table('user',metadata, Column('id',Integer,pri

Flask项目中向Mysql存入Emoji表情引起的Bug

Bug背景 之前在写Flask入门项目Flask Mega项目的时候,一直都是用SQLite,后面切换到Mysql数据库发现在存入一些EMOJI表情符号的时候,会出现如下的报错. Bug解决思路 刚开始觉得应该是数据库的编码的问题,因为之前也遇到数据库存入特殊符号的时候发生报错.那先查看服务器上面的数据库编码格式. show variables like '%char%'; 通过查看数据库编码发现都是utf8格式.然后查阅有关的资料,以及翻阅之前做过的笔记发现,Mysql中的utf8编码格式最多

使用sqlalchemy对mysql进行增删改查

需求场景: 老大让我利用爬虫爬取的数据写到或更新到mysql数据库中,百度了两种方法,1 是使用pymysql连接mysql,通过操作原生的sql语句进行增删改查数据:2 是使用sqlalchemy连接mysql,通过ORM模型建表并操作数据库,不需要写原生的sql语句,相对简单些: 以下就是本次使用sqlalchemy的经验之谈. 实现流程:连接数据库>通过模型类创建表>建立会话>执行创建表语句>通过会话进行增删改查 from sqlalchemy import exists,

sqlalchemy 使用pymysql连接mysql 1366错误

一.错误情况 mysql 5.7.2 \python35\lib\site-packages\pymysql\cursors.py:166: Warning: (1366, "Incorrect string value: '\\xD6\\xD0\\xB9\\xFA\\xB1\\xEA...' for column 'VARIABLE_VALUE' at row 480") result = self._query(query) 今天在使用ORM链接数据库时遇到到了这个错误,使用的是s

88、flask之SQLAlchemy

本篇导航: 介绍 使用 SQLAlchemy-Utils 一. 介绍 SQLAlchemy是一个基于Python实现的ORM框架.该框架建立在 DB API之上,使用关系对象映射进行数据库操作,简言之便是:将类和对象转换成SQL,然后使用数据API执行SQL并获取执行结果. pip install sqlalchemy -i http://pypi.douban.com/simple --trusted-host pypi.douban.com 组成部分: Engine,框架的引擎 Connec

基于windows环境的Flask网站搭建(mysql + conda + redis)

1下载mysql-installer-community-5.7.24.0.msi (https://dev.mysql.com/downloads/windows/installer/8.0.html, 选择 Looking for previous GA versions?) 2.安装 2.1选择模块 2.2安装方式 2.3设置密码 2.4查看环境变量  3. 配置数据库 3.1 配置服务器编码 在my.ini文件下修改(默认在C:\ProgramData\MySQL\MySQL Serve

python连接mysql、oracle小例子

import  MySQLdbimport  cx_Oracle   as  oraimport  pandas  as  pdfrom    sqlalchemy import create_enginefrom    settings    import  DATABASESfrom sqlalchemy.sql.sqltypes import *from math import isnan //连接mysql conn_Mysql = MySQLdb.connect(host=DATABA