python之运用SQLAlchemy

原理图
原理图

SQLAlchemy安装和配置

pip install SQLAlchemy
#进入python环境测试
import sqlalchemy
#如果不报错,则已经安装成功了

如果pip安装出现错误,不要着急,还有一种方法,那就是下载安装包,解压缩文件,然后打开lib文件夹,会发现sqlalchemy文件,没错,这就是python的模块文件,然后将它copy,粘贴到python根目录中的 Lib\site-packages ,便可大功告成

常见类型

Integer(整型) Float(浮点型) Boolean(布尔型) ForeignKey(外键) Date/DateTime/String(日期) 。。。

下面是一个简单的实例

class News(Base):
    __tablename__ = 'news'
    id = Column(Integer, primary_key=True)
    title = Column(String(200), nullable=False)
    content = Column(String(2000), nullable=False)
    types = Column(String(10), nullable=False)
    is_valid = Column(Boolean)

通过SQLAlchemy操作数据库

#先引入模块
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String, DateTime, Boolean

engin = create_engine('mysql://root:'密码'@localhost:3306/news?charset=utf8')
#创建基类
Base = declarative_base()

#定义数据模型

class News(Base):
    __tablename__ = 'news'
    id = Column(Integer, primary_key=True)
    title = Column(String(200), nullable=False)
    content = Column(String(2000), nullable=False)
    types = Column(String(10), nullable=False)
    is_valid = Column(Boolean)

#在数据库中创建一个表
News.metadata.create_all(engin)
#不用sql语句就可以在数据库中创建一张表了,是不是很神奇!

在表中添加数据

#引入模块
from sqlalchemy.orm import sessionmaker
#实例化session
Session = sessionmaker(bind=engin)
创建类
class add_one(self):
    def __init__(self):
        self.session = Session()
    #添加数据
    def add_one(self):
        new_obj = News(
            title='龙妈',
            content='不焚者',
            types='铁王座'
        )
        self.session.add(new_obj)
        self.session.commit()
        return new_obj  

在表中查询数据

#查询一条数据
def get_one(self):
    return self.session.query(News).get('id')
#查询多条数据
def get_more(self):
    return self.session.query(News).filter_by(is_valid=False)

修改/删除数据

def update_data(self, pk):
    #修改单条数据
    new_obj = self.session.query(News).get(pk)
    if new_obj:
        new_obj.is_valid = 0
        self.session.add(new_obj)
        self.session.commit()
        return True
    reurn False
    #修改多条数据
    data_list = self.session.query(News).filter_by(is_valid=False)
    for item in data_list:
        item.is_valid = 1
        self.session.add(item)
    self.session.commit()

删除数据

def delete_data(self, pk):
    new_obj = self.session.query(News).get(pk)
    self.session.delete(new_obj)
    self.commit()
#删除多条数据和上述修改的写法一致

这里都是SQLAlchemy的基本操作方法,实际操作时遇到问题要随时看官方的文档

猜你喜欢

转载自blog.csdn.net/weixin_41676178/article/details/81028877