python安装sqlalchemy syntax_python如何用sqlalchemy操作数据库

工具: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()

查看数据库已经删除成功

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值