Skip to content

A useful simple to use utility to turn your sql query into a beautiful report HTML table

License

Notifications You must be signed in to change notification settings

birddevelper/Flask_SqlAlchemy_Report

Repository files navigation

Downloads

Flask_SqlAlchemy_Report is an easy to use tool for generating html table from sql query.

The package contains single function named "generateFromSql" which accepts 11 arguments :

  • session : SQLAlchemy session
  • title : The title of the report that will be shown on top of table
  • sqltext : The sql select query to retrieve data
  • footerCols : A list of columns name that you want to have Sum of values on footer . Example : ['amount','price']
  • direction (default = "ltr") : Indicates direction of the report page. "ltr"- Left to Right , "rtl" - Right to Left
  • font (default = "Tahoma") : Font of title and table contents
  • totalText (default = "Total") : Title of footer row that will be the put below the first column.
  • rowIndex (default = False) : Indicates whether the table should have index column or not.
  • headerRowColor (default = '#eeeeee') : The header (title) row background color.
  • evenRowColor (default = '#ffffff') : The even rows background color.
  • oddRowColor (default = '#ffffff') : The odd rows background color.

Installation

To install flask_sqlalchemy using pip :

pip install flask-sqlalchemy-report

Usage :

from flask_sqlalchemy_report import Reporter 

@app.route('/listOfPersons', methods=['GET'])
def listOfPersons():
  reportTitle = "Employee List"
  sqlQuery = "SELECT FirstName as 'First Name', LastName as 'Last Name', phone as 'Phone Number', salary as 'Salary' FROM persons"
  columnsToBeSummarized = ['Salary']
  fontName = "Arial"
  headerRowBackgroundColor = '#ffeeee'
  evenRowsBackgroundColor = '#ffeeff'
  oddRowsBackgroundColor = '#ffffff'
  rowIndexVisibility = True
  footerSummaryTitle = "Total Salary"
  return Reporter.generateFromSql(db.session, reportTitle, sqlQuery, columnsToBeSummarized, 
                                  "ltr", fontName, footerSummaryTitle, rowIndexVisibility,
                                  headerRowBackgroundColor, evenRowsBackgroundColor, oddRowsBackgroundColor
                                  )
   

See More

Read more about flask_sqlalchemy_report here