SQLAlchemy는 Python의 ORM 프레임워크입니다. 객체 컬렉션보다 데이터베이스의 크기와 성능이 더 중요하고, 테이블과 행보다 객체 컬렉션의 추상화가 더 중요하다는 철학이 있습니다.
데이터베이스 운영 소프트웨어는 PHP의 pdo와 유사하지만 pdo보다 더 유연하고 복잡합니다. 데이터베이스의 테이블과 프로그램의 클래스를 1대1로 일치시킬 수 있으므로 작성하기 쉽습니다. 초기 단계에서 클래스를 잘 작성하면 나중에 SQL을 작성할 필요가 없습니다. ;
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 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)
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!