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.

Source Distribution

frameup-0.1.2.tar.gz (6.0 kB view details)

Uploaded Source

Built Distribution

frameup-0.1.2-py3-none-any.whl (8.1 kB view details)

Uploaded Python 3

File details

Details for the file frameup-0.1.2.tar.gz.

File metadata

  • Download URL: frameup-0.1.2.tar.gz
  • Upload date:
  • Size: 6.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/0.12.17 CPython/3.7.2 Darwin/18.7.0

File hashes

Hashes for frameup-0.1.2.tar.gz
Algorithm Hash digest
SHA256 6128c60917b5cdd6a3f714382970ed45cf8ac48473d0b94e949a8d00e531dbca
MD5 cae336406ee6dd3afd6167af6bf162f5
BLAKE2b-256 4704e7c7437710967d8a583c01c2590a58189d4c95b13f553b3e77963c5c07c5

See more details on using hashes here.

File details

Details for the file frameup-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: frameup-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 8.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/0.12.17 CPython/3.7.2 Darwin/18.7.0

File hashes

Hashes for frameup-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 61dec0558391ddbb39444c92dde33872e4652be58cd1b3d8c4e5642eef3079bc
MD5 95c5c7c7760cdddc3edfc08dedc07b2c
BLAKE2b-256 356dcfdb5939a55db4cb45a06a1e24c204914b92bd0994cd0345887af9288c2e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page