Skip to main content

DataFrames all up in your web applications

Project description

DataFrameup

 $ pip install frameup
 $ frameup <path-to-csvfile>

Frameup is the easiest way to get your Pandas DataFrame up into a Python-based web application. Simply import frameup and your DataFrames will become URL query parameter, and pagination aware.

Zero dependencies, except Pandas of course.

Quick look

Serve a csv as a frameup dataframe on localhost

 $ python -m frameup.serve <path-to-csv-file>

Then navigate to http://localhost:8000/. Use the Pandas DataFrame query syntax in the query box.

... or, get a JSON payload:

 $ curl 'http://localhost:8000/?query=&limit=10&page=1' | python -m json.tool

Use it in your web application

Flask example

Given a template similar to example.js.html

from flask import Flask, jsonify, render_template, request, url_for
import pandas as pd
import frameup

app = Flask(__name__)

df = pd.read_csv(YOUR_CSV_FILE)

@app.route('/mydataframe')
def main():
    data = df.frameup.data(path=url_for('main'), **request.args)
    return render_template('example.j2.html', **data)

For something ajaxy, just replace the return with:

return jsonify(**data)

On query parameter objects

Be sure the query parameter object you pass frameup does not return lists for values. classes is the only multi-valued parameter accepted, and should be passed as a comma-delimited list rather than multiple classes keys.

Python web frameworks all have their own way of dealing with the vagaries of GET parameter specification hell. Most implement some concept of a MultiDict, but the APIs for these vary from one framework to the next. Thus, the requirement of only single-valued GET params greatly simplifies things here.

Other projects

Projects to review / learn from / use instead

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for frameup, version 0.1.2
Filename, size File type Python version Upload date Hashes
Filename, size frameup-0.1.2-py3-none-any.whl (8.1 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size frameup-0.1.2.tar.gz (6.0 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page