Skip to main content

Flask-request-params provides Rails-like interface to HTTP Request Parameters for Flask.

Project description

https://travis-ci.org/bluele/Flask-request-params.svg?branch=master

Flask-request-params provides Rails-like interface to HTTP Request Parameters for Flask.

Supports mixed parameters(GET, POST, POST-JSON), Rails Strong_Parameters.

Documents are here.

Installation

To install Flask-request-params, simply:

pip install flask-request-params

Or alternatively, you can download the repository and install manually by doing:

git clone git@github.com:bluele/flask-request-params.git
cd flask-request-params
python setup.py install

Examples

See examples for more code.

Client code

# support hash type
$ curl -X POST http://localhost:5000/echo/user -d 'user[name]=john&user[password]=pass'
{
  "path": "user",
  "user": {
    "name": "john",
    "password": "pass"
  }
}

# support array type
$ curl -X POST http://localhost:5000/echo/lang -d 'languages[]=python&languages[]=golang'
{
  "path": "lang",
  "languages": [
    "python",
    "golang"
  ]
}

# support strong_parameters
$ curl -X POST http://localhost:5000/user -d 'user[name]=bluele&user[password]=password'
{
  "name": "bluele",
  "password": "password"
}

Server code

from flask import Flask, request, render_template, jsonify
from flask_request_params import bind_request_params


app = Flask(__name__)
app.secret_key = 'secret'
# bind rails like params to request.params
app.before_request(bind_request_params)

# just return request.params
@app.route('/echo/<path>', methods=['GET', 'POST'])
def echo(path):
    return jsonify(request.params)

@app.route('/user', methods=['POST'])
def create_user():
    user = request.params.require('user').permit('name', 'password')
    # do something
    return jsonify(user)

# serve at localhost:5000
app.run(debug=True)

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

Flask-request-params-0.3.0.tar.gz (4.2 kB view details)

Uploaded Source

Built Distribution

Flask_request_params-0.3.0-py2-none-any.whl (7.0 kB view details)

Uploaded Python 2

File details

Details for the file Flask-request-params-0.3.0.tar.gz.

File metadata

File hashes

Hashes for Flask-request-params-0.3.0.tar.gz
Algorithm Hash digest
SHA256 0e15f8999049c8d1a2dcded9a6dbb7ffc731fedbdcb5ee1eba12af4800a2b905
MD5 9c3819a8d12b4c53d702d444367fe51e
BLAKE2b-256 3314f41ab27df8d0c59ddfe5063a5bdfcb687174e7573eac62ded2f758b7447f

See more details on using hashes here.

File details

Details for the file Flask_request_params-0.3.0-py2-none-any.whl.

File metadata

File hashes

Hashes for Flask_request_params-0.3.0-py2-none-any.whl
Algorithm Hash digest
SHA256 e4117b69cc7ab603e99491b3bca31471c1bba90d0f5a078c513ee00926de00b4
MD5 7b022b03460d3232d46c5a9548d86a21
BLAKE2b-256 f6ed5fe85e75dd20e880bc54b8119c7403cc2f7e5f95e09be2e6169b951ab88c

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