工具:mysql python sqlalchemy
----------------------------------------
准备工作:
1.安装mysql
如果是window环境请参考 win7安装mysql
如果是linux环境请参考 linux安装mysql
2.安装python
注:CentOS自带python2.6.6,如果要安装2.7.9以后的版本同样要通过源码包安装
3.基于python安装第三方库pymysql和sqlalchemy
pip install pymysql
pip install sqlalchemy
pip3 install pymysql
pip3 install sqlalchemy
--------------------------------------------------------------------------
可以开始撸码了~~~~~~
我是基于python36写的,话不多说直接上代码吧
第一步:用mysql创建数据库
第二步:创建数据库连接
#encoding:utf-8
from sqlalchemy importcreate_enginefrom sqlalchemy.ext.declarative importdeclarative_basefrom sqlalchemy importColumn, INTEGER, Stringfrom sqlalchemy.orm importsessionmaker
HOST_NAME= '127.0.0.1' #数据库所在服务器ip,因为我是本地数据库所以这里是127.0.0.1
HOST_PORT = '3306' #数据库端口
DATABASE_NAME = 'pydb' #数据库名
USER_NAME = 'root' #链接数据的用户名
PWD = '123456' #链接数据库的密码#DB_URI是固定的格式,因为我的数据库是mysql,所以按照这个格式写就行了
DB_URI = 'mysql+pymysql://{0}:{1}@{2}:{3}/{4}?charset=utf8'.format(USER_NAME,PWD,HOST_NAME,HOST_PORT,DATABASE_NAME)#创建数据库连接
engine = create_engine(DB_URI)
第三步: 创建表
#-------------创建数据库--------------------------------------------------------------------------------#操作数据库的基类
Base =declarative_base(engine)classUser(Base):"""定义类其实就是创建一个表
create table user (
id int primary key auto_increment,
user_name varchar(50) not null,
password varchar(20) default '123456'
);"""
__tablename__ = 'user' #表名
id = Column(INTEGER,primary_key=True, autoincrement=True) #id字段,主键,自增
user_name = Column(String(50), nullable=False) #用户名字段
password = Column(String(20), nullable=False, default='123456') #密码字段
def __repr__(self):"""定义数据库查询返回的数据格式"""
return 'User(id="%s",username="%s",password="%s")' %(self.id, self.user_name,self.password)
Base.metadata.create_all()
查看数据库,创建成功
第四步: 插入数据
1 #------------插入数据---------------------------------------------------------------------
2 #创建会话
3 Session =sessionmaker(engine)4 session =Session()5 panda = User(user_name='panda', password='123456')6 #插入单条数据
7 session.add(panda)8 user_list =[]9 #插入多条数据
10 user_list.append(User(user_name='test1', password='11111111'))11 user_list.append(User(user_name='test2', password='22222222'))12 user_list.append(User(user_name='test3', password='33333333'))13 session.add_all(user_list)14 session.commit()
查看数据库已经添加成功
第五步:查询数据
#select top 1 from user;
res_first =session.query(User).first()print(res_first)#select *from user;
res_all =session.query(User).all()print(res_all)#select *from user where user_name='panda';
res_panda = session.query(User).filter_by(user_name='panda').all()print(res_panda)#select *from user where user_name='panda';
res = session.query(User).filter(User.user_name == 'panda').all()print(res)
运行结果如下,这里返回的格式是以class类的__repr__方法定义的
第六步: 更新数据
#update user set password = '654321' where user_name='panda';
res = session.query(User).filter(User.user_name == 'panda').all()[0]
res.password= '654321'session.commit()
查看数据库已经更新成功
第七步: 删除数据
#delete from user where id=3;
res = session.query(User).filter_by(user_name='test3').all()[0]
session.delete(res)
session.commit()
查看数据库已经删除成功