zoukankan      html  css  js  c++  java
  • SQLAlchemy教程-第五章-其他-完结

    有几点还没有写.

    1. 分页.
    2. 创建表.

    下面是分页的内容

    from models import *
    
    
    # 测试分页功能
    def query_paginate():
        emps = sess.query(Emp).order_by(Emp.empno.asc()).limit(3).offset(3).all()
        for item in emps:
            print(item)
        '''
        output:
        
        {'empno': 7566, 'ename': 'JONES', 'job': 'MANAGER', 'deptno': 20, 'sal': Decimal('2975.00'), 'comm': None}
        {'empno': 7654, 'ename': 'MARTIN', 'job': 'SALESMAN', 'deptno': 30, 'sal': Decimal('1250.00'), 'comm': Decimal('1400.00')}
        {'empno': 7698, 'ename': 'BLAKE', 'job': 'MANAGER', 'deptno': 30, 'sal': Decimal('2850.00'), 'comm': None}
        
        
        
        '''
    
    
    # 测试分页功能2, 如果把 offset和limit调换顺序呢?其实也没问题好像。 目前我没有深究
    def query_paginate2():
        emps = sess.query(Emp).order_by(Emp.empno.asc()).offset(3).limit(3).all()
        for item in emps:
            print(item)
        '''
        
        output:
        
        {'empno': 7566, 'ename': 'JONES', 'job': 'MANAGER', 'deptno': 20, 'sal': Decimal('2975.00'), 'comm': None}
        {'empno': 7654, 'ename': 'MARTIN', 'job': 'SALESMAN', 'deptno': 30, 'sal': Decimal('1250.00'), 'comm': Decimal('1400.00')}
        {'empno': 7698, 'ename': 'BLAKE', 'job': 'MANAGER', 'deptno': 30, 'sal': Decimal('2850.00'), 'comm': None}
        '''
    
    
    '''
    note:
    
    请大家注意, sqlalchemy和flask-sqlalchemy是两个不同的包。
    sqlalchemy是原生的,核心。
    flask-sqlalchemy是根据sqlalchemy, 为flask量身定制开发的。 flask是一个web轻量级框架。
    请注意sqlalchemy和flask-sqlalchemy的界限。
    paginate函数是flask-sqlalchemy的方法, 不属于原生的sqlalchemy, 鉴于时间和精力的关系, 我不在这里写了。
    
    '''
    
    
    if __name__ == '__main__':
        query_paginate2()
    

    如果要创建表的话,使用Base.metadata.create_all(engine), 具体请参考
    db_util.py里面的方法。

    sqlalchemy的教程到这里就暂时结束了。
    这篇教程了里缺少的东西有很多, 我想了一下, 主要缺的有, 关系, 比如relation的写法, flask-sqlalchemy的写法(flask-sqlachemy是结合web框架的),限于精力和时间,以及主要是个人懒惰,没有啥动力,就不想往下写了。

    特别强调一下, relation,也就是关系,主键外键等等约束,如果你很感兴趣的话, 去官方文档查看。 可以使用编程手动实现这些主键外键约束,关系等等。 个人感觉没有必要太在这上面花时间。
    据说,生产环境不怎么使用外键和关系, 我也不知道为啥。


    SQLAlchemy官方网站
    http://docs.sqlalchemy.org/en/latest/contents.html
    教程全部代码github地址
    https://github.com/notfresh/sqlalchemy_demo

  • 相关阅读:
    ReentrantLock和AQS
    CAS
    java8中ConcurrentHashMap
    java8中的HashMap
    TCP和UDP
    慢查询日志和profiling
    explain的使用
    select、poll、epoll之间的区别
    I/O模型
    生产者-消费者模式
  • 原文地址:https://www.cnblogs.com/notfresh/p/9286965.html
Copyright © 2011-2022 走看看