zoukankan      html  css  js  c++  java
  • SqlAlchemy初探

    SqlAlchemy是Python下的一个成熟的ORM框架。下面我们对他的使用做一个简略的介绍。

    0.安装

    如果有pip,使用pip安装,更便捷。pip install sqlalchemy

    也可以下载包安装。python setup.py install

    1.连接配置

    1 >>> from sqlalchemy import create_engine
    2 >>> engine = create_engine('sqlite:///:memory:', echo=True)
    3 MySql的连库字符串:mysql+pymysql://<username>:<password>@<host>/<dbname>[?<options>] 

    2.模型配置

     1 >>> from sqlalchemy.ext.declarative import declarative_base
     2 >>> Base = declarative_base()
     3 >>> from sqlalchemy import Column, Integer, String
     4 >>> class User(Base):
     5 ...     __tablename__ = 'users'
     6 ...
     7 ...     id = Column(Integer, primary_key=True)
     8 ...     name = Column(String)
     9 ...     fullname = Column(String)
    10 ...     password = Column(String)
    11 ...
    12 ...     def __repr__(self):
    13 ...        return "<User(name='%s', fullname='%s', password='%s')>" % (
    14 ...                             self.name, self.fullname, self.password)
    15 
    17 创建一个模型的实例:
    18 >>> ed_user = User(name='ed', fullname='Ed Jones', password='edspassword')
    19 >>> ed_user.name
    20 'ed'
    21 >>> ed_user.password
    22 'edspassword'
    23 >>> str(ed_user.id)
    24 'None' 

    3.数据查询

    1 >>> from sqlalchemy.orm import sessionmaker
    2 #两种建立session的方法:
    3 >>> Session = sessionmaker(bind=engine)
    4 #或者
    5 >>> Session = sessionmaker()
    6 >>> Session.configure(bind=engine)  # once engine is available

      3.1 普通查询

     1 >>>session.query(user_alias, user_alias.name).all()/one()/first()
     2 >>>session.query(user_alias, user_alias.name).filter(User.fullname=='Ed Jones').filter(User.age [>,<,==,>=,<==]25).all()
     3 >>>query.filter(User.name == 'ed')
     4 >>>query.filter(User.name != 'ed')
     5 >>>query.filter(User.name.like('%ed%'))
     6 >>>query.filter(User.name.in_(['ed', 'wendy', 'jack']))
     7 >>>query.filter(~User.name.in_(['ed', 'wendy', 'jack']))
     8 >>>query.filter(User.name == None)
     9 >>>query.filter(User.name.is_(None))
    10 >>>query.filter(User.name != None)
    11 >>>query.filter(User.name.isnot(None))
    12 >>>from sqlalchemy import and_
    13 >>>query.filter(and_(User.name == 'ed', User.fullname == 'Ed Jones'))
    14 >>>query.filter(User.name == 'ed', User.fullname == 'Ed Jones')
    15 >>>query.filter(User.name == 'ed').filter(User.fullname == 'Ed Jones')
    16 >>>from sqlalchemy import or_
    17 >>>query.filter(or_(User.name == 'ed', User.name == 'wendy'))
    18 >>>query.filter(User.name.match('wendy'))

       3.2关联查询

        用到时候再补上。

    4.更改提交

  • 相关阅读:
    Markdown基础语法
    Java是什么
    myBatis框架_关于怎么获得多表查询的总记录数
    关于Could not load driverClass ${jdbc.driverClassName}问题解决方案
    java中String与StringBuffer拼接的区别
    部分标签
    基础标签 网页分类
    入坑小开头
    完整版的OpenLDAP搭建全过程
    测试Linux下tcp最大连接数限制
  • 原文地址:https://www.cnblogs.com/cncyber/p/4461794.html
Copyright © 2011-2022 走看看