SuPerC

  1. 首页
  2. 技术 and 学习
  3. 正文

Python sqlalchemy

2018年10月22日 2316点热度 2人点赞 0条评论

SQLAlchemy 是一种对象关系映射模型(Object Relational Mapper), 简称ORM。

它展现了一种将用户定义的python中的类映射到数据库中表的方法。类的实例,就相当于表中的一行数据。简单来说呢, 就是让我们从SQL语句中抽离出来,只需要按照python的语法来写, 它会自动转换为相对应的SQL语句。

下面总结一下SQLAlchemy简单实使用。

连接数据库: 
from sqlalchemy import create_engine 
engine = create_engine('mysql+pymysql://root:111122@localhost/test', echo=True)    #开启 debug 模式 


创建Mapping: 
from sqlalchemy import create_engine, Column, String, Integer 
from sqlalchemy.ext.declarative import declarative_base 
Base = declarative_base() 
 
class User(Base): 
    __tablename__ = 'users' 
    id = Column(Integer, primary_key=True)  # 每一个类都需要主键 
    username = Column(String(64), index=True) 
    email = Column(String(64), unique=True, index=True) 
    location = Column(String(128)) 


创建Schema: 
Base.metadata.create_all(bind=engine) 


创建session: 
from sqlalchemy.orm import sessionmaker 
session = sessionmaker(bind=engine)()           #就像 Metadata 类一样,需要 bind engine 

生成一些假数据: 
from faker import Faker #使用 faker 这个模块来生成一些假数据, pip install faker 
faker = Faker() 

def fake_data_generate(User, session): 
    for _ in range(10): 
        user = User(username=faker.name(), email=faker.email(), location=faker.address()) 
        session.add(user) 
        session.commit() 

fake_data_generate(User, session) 

CRUD 操作(创建、读取、更新、删除):
Create 
anyisalin = User(username='aaaaaaaaaa', email='aaa@gmail.com', location='Shanghai/China') 
session.add(anyisalin) 
session.commit() 
 
Update 
anyisalin.username 
>>> aaaaaaaa 
anyisalin.username='SuPerC2333' 
session.add(anyisalin) 
session.commit() 
 
Delete 
session.delete(anyisalin) 
session.commit() 
 
查询全部: 
session.query(User).all() 
 
查询第一个: 
session.query(User).first() 
 
filter: 
session.query(User).filter(User.id == 7).all() 
 
count: 
session.query(User).count() 
标签: Database Linux Python 专业搬运 记录
最后更新:2018年10月22日

SuPerC

记录生活,记录自己!

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

COPYRIGHT © 2024 SuPerC. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang