Skip to main content

Dart turns URL variables into database models with a decorator.

That means you can do something like this:

@app.route('/user/<user_id>/tracks', methods=['GET'])
@dart.inject(User, 'user', from_var='user_id')
def user_tracks(user=None):
    return jsonify(user.tracks)

If you’re smart, you might have a decorator that checks user authorization, something like @login_required. You can compose Dart with other decorators to simplify logic, while still keeping your code readable and concise:

def login_required(view):
    @functools.wraps(view)
    @dart.inject(User, 'user', from_var='user_id')
    @dart.inject(User, 'current_user', from_val=lambda: session['user_id'])
    def decorated_view(user=None, current_user=None, *args, **kwargs):
        if current_user != user:
            abort(403)
        else:
            return view(user=user, *args, **kwargs)
    return decorated_view

@login_required
def view(user=None):
    return '{} did it!'.format(user.name)

Of course, Dart isn’t just a Flask. It’s literally just a decorator that takes a keyword arg or lambda expression and queries the model class using it as the primary key. That means you can use the Dart decorator with any function.

For more info, check out the source code – it’s 27 lines.

Release files for dart 1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dart 1.0
File Size Uploaded
dart-1.0.tar.gz 2.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dart 1.0
File Interpreter ABI Platform
dart-1.0-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 5.4 kB

Release files / dart-1.0.tar.gz

Download URL dart-1.0.tar.gz
Size 2.0 kB
Tags Source
SHA-256 checksum
How to use checksums
fdceb359ee781e7853186cfc39d061902fb2d2d8573f90430323a9ff784c2c06
BLAKE2b-256 checksum
How to use checksums
89f763c55a348968a67d8034b12d98c0b9213204722d7cccbfe296b185cd3bb6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / dart-1.0-py2.py3-none-any.whl

Download URL dart-1.0-py2.py3-none-any.whl
Size 3.4 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
967f3d0beb0db32f8c3cb868d701cf7b1e59227b94be305a955d59ac066173ab
BLAKE2b-256 checksum
How to use checksums
f2c4eb080648ebdee8f9342e5f8af59b9643f645123e4334b37e2c7684fa1435
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page