Skip to content

Commit e9c12e2

Browse files
committed
Python SQLAlchemy
1 parent 2d9293c commit e9c12e2

File tree

3 files changed

+64
-0
lines changed

3 files changed

+64
-0
lines changed

day-086/__init__.py

Whitespace-only changes.

day-086/foo.db

8 KB
Binary file not shown.

day-086/sqlalchemy_sqlite.py

+64
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
from sqlalchemy import create_engine
2+
from sqlalchemy.ext.declarative import declarative_base
3+
from sqlalchemy import Column, Integer, String
4+
from sqlalchemy.orm import sessionmaker
5+
6+
# 相对路径
7+
engine = create_engine('sqlite:///foo.db', echo=True)
8+
9+
# 绝对路径
10+
# engine = create_engine('sqlite:///C:\\Users\\admin\\Desktop\\db\\foo.db')
11+
# engine = create_engine(r'sqlite:///C:\Users\admin\Desktop\db\foo.db')
12+
13+
# 内存数据库
14+
# engine = create_engine('sqlite://', echo=True)
15+
# conn = engine.connect()
16+
17+
# 映射基类
18+
Base = declarative_base()
19+
20+
# 具体映射类
21+
class SysUser(Base):
22+
# 指定映射表名
23+
__tablename__ = 'sys_user'
24+
25+
# id 设置为主键
26+
id = Column(Integer, primary_key=True)
27+
# 指定 name 映射到 name 字段
28+
name = Column(String(30))
29+
password = Column(String(32))
30+
31+
# 创建表
32+
# Base.metadata.create_all(engine)
33+
Session = sessionmaker(bind=engine)
34+
# 创建 Session 类实例
35+
session = Session()
36+
37+
# 新增
38+
# su = SysUser(id=1, name='Jhon', password='123456')
39+
# 保存
40+
# session.add(su)
41+
# 提交
42+
# session.commit()
43+
# 关闭
44+
# session.close()
45+
46+
# 查询
47+
# u = session.query(SysUser).filter(SysUser.id==1).one()
48+
# session.query(SysUser).filter(SysUser.id==1).all()
49+
# print('name-->',u.name)
50+
# session.close()
51+
52+
# 修改
53+
# u = session.query(SysUser).filter(SysUser.id==1).one()
54+
# print('修改前名字-->', u.name)
55+
# u.name = 'James'
56+
# session.commit()
57+
# print('修改后名字-->', u.name)
58+
# session.close()
59+
60+
# 删除
61+
u = session.query(SysUser).filter(SysUser.id==1).one()
62+
session.delete(u)
63+
session.commit()
64+
session.close()

0 commit comments

Comments
 (0)