二数据库进阶sqlalchemy
SQLAlchemy 是python 编程语言下的一款ORM(object relational mapping)框架,对象关系映射。简单的说,ORM将数据库中的表与面向对象语言中的类建立一种对应关系。这样,我们要操作数据库,数据库中的表或者表中的一条记录就可以直接通过操作类或者类实例来完成。
https://www.cnblogs.com/pycode/p/mysql-orm.html
SQLAlchemy本身无法操作数据库,其必须依赖pymysql等第三方插件,才能操作数据库。
1 MySQL-Python 2 mysql+mysqldb://<user>:<password>@<host>[:<port>]/<dbname> 3 4 pymysql 5 mysql+pymysql://<username>:<password>@<host>/<dbname>[?<options>] 6 7 MySQL-Connector 8 mysql+mysqlconnector://<user>:<password>@<host>[:<port>]/<dbname> 9 10 cx_Oracle 11 oracle+cx_oracle://user:pass@host:port/dbname[key=value&key=value...]
举个例子:
conn_string = 'mysql+mysqldb://' + db_user + ':' + db_passwd + '@localhost/kobesystem?charset=utf8'
engine = create_engine(conn_string, encoding='utf-8')
sqlalchemy 的使用方法
1 创建表单
from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Column, Integer, String, ForeignKey, UniqueConstraint, Index from sqlalchemy.orm import sessionmaker, relationship from sqlalchemy import create_engine conn_string = 'mysql+mysqldb://' + db_user + ':' + db_passwd + '@localhost/kobesystem?charset=utf8' engine = create_engine(conn_string, encoding='utf-8') Base = declarative_base() class Users(Base): __tablename__ = 'users' id = Column(Integer, primary_key=True) name = Column(String(32)) extra = Column(String(16))
1 session.query(User).fiter(User.id == id).delete()
删除符合条件的数据,返回删除的条数,如果没有则返回为0
2 session.bulk_save_objects(list)
快速插入多条数据
sections = [] for item in data_json_list: section_id = str(uuid.uuid1()) section_obj = Section(id=section_id) section_obj.name = item["name"] section_obj.projectId = project_id sections.append(section_obj) db_session.bulk_save_objects(sections) db_session.commit()
3 session.query(Section).filter_by(id=section_id).first()
快速查询,如果存在则返回结果。不存在,则返回None.
4
事事有回音
凡事有交代
件件有着落

浙公网安备 33010602011771号