>  기사  >  백엔드 개발  >  sqlalchemy 소개 예시

sqlalchemy 소개 예시

零下一度
零下一度원래의
2017-07-17 14:01:391538검색

SQLAlchemy는 Python의 ORM 프레임워크입니다. 객체 컬렉션보다 데이터베이스의 크기와 성능이 더 중요하고, 테이블과 행보다 객체 컬렉션의 추상화가 더 중요하다는 철학이 있습니다.

데이터베이스 운영 소프트웨어는 PHP의 pdo와 유사하지만 pdo보다 더 유연하고 복잡합니다. 데이터베이스의 테이블과 프로그램의 클래스를 1대1로 일치시킬 수 있으므로 작성하기 쉽습니다. 초기 단계에서 클래스를 잘 작성하면 나중에 SQL을 작성할 필요가 없습니다. ;

Installation
pip install flask_sqlalchemy

테이블 생성:

 1 from flask_sqlalchemy import SQLAlchemy 2 from sqlalchemy import * 3 from sqlalchemy.orm import * 4 #上面导入的文件可能有些用不到; 5 engine=create_engine("mysql://root:root@localhost:3306/flask?charset=utf8",echo=True) 6 metadata=MetaData(engine) 7 goods=Table('goods',metadata, 8     Column('id',Integer,primary_key=True), 9     Column('name',String(20)),10     Column('fullname',String(40)),11     )12 metadata.create_all()

데이터 삽입:

 1 #-*-coding:utf-8-*- 2 from flask_sqlalchemy import SQLAlchemy 3 from sqlalchemy import * 4 from sqlalchemy.orm import * 5 #链接数据库并初始化对象 6 engine=create_engine("mysql://root:root@localhost:3306/flask?charset=utf8",echo=True) 7 metadata=MetaData(engine) 8  9 users_table = Table("goods",metadata,autoload=True)  #这个应该是初始化表10 i = users_table.insert() #调用对象中的insert()方法,产生语句:INSERT INTO goods (id, name, fullname) VALUES (%s, %s, %s)11 result = i.execute(name = "summer",fullname = "736960938@qq.com") #传入参数并执行12 print(result)
데이터 쿼리
1. 이 데이터 삽입 방법을 보고 쿼리도 가능해야겠다는 생각이 들었습니다. ;
1 users_table = Table("goods",metadata,autoload = True)2 i = users_table.select()3 result = i.execute(name="xiaoge")4 #这种方式查询好像有点尴尬,对象里面包含对象,不能直接看到查询结果5 print(result)

2. 테이블과 클래스 간의 대응 관계를 설정합니다.

 1 goods_table = Table("goods",metadata,autoload = True) 2 ''' 3 建立表和class的映射关系 4 ''' 5 class Goods(object): 6   def __repr__(self): 7       return "%s(%r,%r)" % (self.__class__,self.name,self.fullname) 8 mapper(Goods,goods_table) 9 '''建立关系结束'''10 session = create_session()11 query = session.query(Goods)12 u=query.filter_by(name = "xiaoge").first()13 print(u.fullname)
object.__dict__ 재귀적 표시가 없는 객체
모든 데이터 쿼리:
 1 goods_table = Table("goods",metadata,autoload = True) 2 ''' 3 建立表和class的映射关系 4 ''' 5 class Goods(object): 6   def __repr__(self): 7       return "%s(%r,%r)" % (self.__class__,self.name,self.fullname) 8 mapper(Goods,goods_table) 9 '''建立关系结束'''10 session = create_session()11 query = session.query(Goods)12 u = query.all()13 for i in u:#返回多个对象,遍历即可14     print(i.name)

위 내용은 sqlalchemy 소개 예시의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.