原理图
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的基本操作方法,实际操作时遇到问题要随时看官方的文档