code: def from_sql(sql, engine, limit=None, **kwargs):
      
      if limit is not None:
          sql = sql.limit(limit)
      result_proxy = engine.execute(sql)
      return from_db_cursor(result_proxy.cursor)
docs: Create a :class:`prettytable.PrettyTable` from :class:`sqlalchemy.select`.
  
      :type sql: Select
      :param sql: a ``sqlalchemy.sql.selectable.Select`` object.
  
      :type engine: Engine
      :param engine: an ``sqlalchemy.engine.base.Engine`` object.
  
      :type limit: int
      :param limit: int, limit rows to return.
  
      :rtype: PrettyTable
  
      **中文文档**
  
      将sqlalchemy的sql expression query结果放入prettytable中.
  
      .. note::
  
          注意, from_db_cursor是从原生的数据库游标通过调用fetchall()方法来获取数据。
          而sqlalchemy返回的是ResultProxy类。所以我们需要从中获取游标
          至于为什么不能直接使用 from_db_cursor(engine.execute(sql).cursor) 的语法
          我也不知道为什么.