Maison  >  Article  >  développement back-end  >  Exemple d'introduction de sqlalchemy

Exemple d'introduction de sqlalchemy

零下一度
零下一度original
2017-07-17 14:01:391538parcourir

SQLAlchemy est le framework ORM de Python. Sa philosophie est que la taille et les performances de la base de données sont plus importantes que la collection d'objets, et l'abstraction de la collection d'objets est plus importante que les tables et les lignes.

Le logiciel d'exploitation de base de données est similaire à pdo en php, mais plus flexible et complexe que pdo. Il peut faire correspondre les tables de la base de données aux classes du programme une à une, ce qui facilite leur appel. Si vous pouvez bien écrire la classe au début, pas besoin d'écrire SQL plus tard

Installation
pip install flask_sqlalchemy

Créer une table :

 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()

Insérer des données :

 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)
Requête de données
1. l'interrogation devrait également être possible
1 users_table = Table("goods",metadata,autoload = True)2 i = users_table.select()3 result = i.execute(name="xiaoge")4 #这种方式查询好像有点尴尬,对象里面包含对象,不能直接看到查询结果5 print(result)

2. Établir une relation correspondante entre la table et la classe

 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__ Afficher le contenu de l'objet et ne pas l'afficher de manière récursive
Interroger toutes les données :
 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)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn