Easily share data across your company via SQL queries. From Grove Collab.

Overview
Documentation Status Build Status Latest Version Downloads License

SQL Explorer

SQL Explorer aims to make the flow of data between people fast, simple, and confusion-free. It is a Django-based application that you can add to an existing Django site, or use as a standalone business intelligence tool.

Quickly write and share SQL queries in a simple, usable SQL editor, preview the results in the browser, share links, download CSV, JSON, or Excel files (and even expose queries as API endpoints, if desired), and keep the information flowing!

Comes with support for multiple connections, to many different SQL database types, a schema explorer, query history (e.g. lightweight version control), a basic security model, in-browser pivot tables, and more.

SQL Explorer values simplicity, intuitive use, unobtrusiveness, stability, and the principle of least surprise.

SQL Explorer is inspired by any number of great query and reporting tools out there.

The original idea came from Stack Exchange's Data Explorer, but also owes credit to similar projects like Redash and Blazer.

You can read the full documentation here

Sql Explorer is MIT licensed, and pull requests are welcome.

A view of a query

https://s3-us-west-1.amazonaws.com/django-sql-explorer/2019_2.png

Viewing all queries

https://s3-us-west-1.amazonaws.com/django-sql-explorer/2019_querylist.png

Quick access to DB schema info

https://s3-us-west-1.amazonaws.com/django-sql-explorer/2019_3.png

Snapshot query results to S3 & download as csv

https://s3-us-west-1.amazonaws.com/django-sql-explorer/2019_snapshots.png

Comments
  • Time for a new release?

    Time for a new release?

    Hey, great work on this tool!

    I'm thinking it might be good to release a new version on pip. There's some good stuff in the latest version, esp a fix for showing the schema on mysql.

    I added this to my pip requirements list:

    git+git://github.com/groveco/django-sql-explorer.git@42237747b82aba40340bdbe1534fe2c085f96b01 # latest commit as of jan 12 2018
    

    and had to pip uninstall the current version first.

    This could be confusing for many users and I'm sure they would appreciate a release on pip.

    opened by baragona 17
  • Django 3.0 support?

    Django 3.0 support?

    Right now when I install this library in my Django 3.0 project, I get the following error: ImportError: cannot import name 'render_to_response' from 'django.shortcuts' (...../lib/python3.7/site-packages/django/shortcuts.py)

    render_to_response was deprecated in Django 2.0 and removed from Django 3.0. Can someone please deploy a fix for this?

    opened by nitish-squadrun 13
  • Add pdf export capability using xhtml2pdf

    Add pdf export capability using xhtml2pdf

    Add an extra exporter (PDF) using xhtml2pdf and reportlab. Uses the exporer/pdf_template.html as a template for the pdf table, you can override it in your own apps to add (for example) page numbers, extra fonts, change page layout etc. Should fix #207.

    opened by spapas 13
  • Additional export functionality

    Additional export functionality

    Hey @chrisclark, what do you think about updating the export functionality to export to CSV, Excel, PDF, and JSON? Maybe a nice little toolbar below the report with export functionality to any of those choices. Then more could be added later if necessary (like an HTML Table export or something).

    I would of course help out with this. Just wanted to get your opinion first.

    opened by grantmcconnaughey 13
  • ModuleNotFoundError: boto3

    ModuleNotFoundError: boto3

    Hey! After installing django-sql-explorer==3.0, I get this error:

    [2022-12-15T14:06:49.875Z] #16 2.041   File "/app/venv/lib/python3.10/site-packages/explorer/utils.py", line 9, in <module>
    [2022-12-15T14:06:49.875Z] #16 2.041     import boto3
    [2022-12-15T14:06:49.875Z] #16 2.041 ModuleNotFoundError: No module named 'boto3'
    

    I see boto3 is actually imported directly here https://github.com/groveco/django-sql-explorer/blob/master/explorer/utils.py#L9, but when installing this app boto3 is not installed as a dependency.

    Am I missing something?

    Thanks!

    bug good first issue Contributions welcome 
    opened by scastlara 12
  • Problem importing celery to enable tasks

    Problem importing celery to enable tasks

    Setting EXPLORER_TASKS_ENABLED = True causes the following exception:

    ImportError: cannot import name 'task' from 'celery' (D:\Users\my-user\projects\my-project\venv-windows\lib\site-packages\celery\__init__.py)
    
    Django==3.2.9
    django-sql-explorer==2.4.2
    celery==5.2.1
    
    opened by avi-perl 12
  • Vulnerabilities in JS files

    Vulnerabilities in JS files

    opened by fearless0307 10
  • Bug in passes_blacklist

    Bug in passes_blacklist

    Hello! I am running the following query:

    SELECT * from eventtype where eventtype.value = 'Grant Date';

    I get:

    Query failed the SQL blacklist: GRANT

    In order for the query to work, I have to do workarounds: SELECT * from legal_eventtype where legal_eventtype.value = concat('G', 'rant Date'); This causes a lot of headaches.

    bug Contributions welcome 
    opened by afedosenko 10
  • Scripts and Style links local rather than pulled from Internet

    Scripts and Style links local rather than pulled from Internet

    I have a great use case for an offline application to use django-sql-explorer and need the scripts and links all to be stored with the package for this purpose.

    These were the references I found with a quick grep of the templates:

    [explorer]# grep 'src="/' *
    base.html:    <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    base.html:    <script src="//cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js"></script>
    base.html:    <script src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
    base.html:    <script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>
    base.html:    <script src="//cdnjs.cloudflare.com/ajax/libs/list.js/1.5.0/list.min.js"></script>
    base.html:    <script src="//cdnjs.cloudflare.com/ajax/libs/codemirror/5.36.0/codemirror.min.js"></script>
    base.html:    <script src="//cdnjs.cloudflare.com/ajax/libs/codemirror/5.36.0/mode/sql/sql.min.js"></script>
    base.html:    <script src="//cdnjs.cloudflare.com/ajax/libs/codemirror/5.36.0/addon/comment/comment.min.js"></script>
    base.html:    <script src="//cdnjs.cloudflare.com/ajax/libs/floatthead/2.1.1/jquery.floatThead.min.js"></script>
    base.html:    <script src="//cdnjs.cloudflare.com/ajax/libs/pivottable/2.20.0/pivot.min.js"></script>
    
    [explorer]# grep 'href="/' *
    base.html:    <link href="//cdnjs.cloudflare.com/ajax/libs/codemirror/5.36.0/codemirror.min.css" rel="stylesheet" />
    base.html:    <link href="//cdnjs.cloudflare.com/ajax/libs/pivottable/2.20.0/pivot.min.css" rel="stylesheet" />
    fullscreen.html:    <link href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" />
    
    opened by alligatorbait 10
  • Exports need to include a BOM

    Exports need to include a BOM

    Currently exporting a CSV and opening it in Excel ruins any unicode characters.

    For example, Japanese characters display as 裕太

    Exporter needs to do something like this to write the BOM to the beginning of the file;

        contents = StringIO()
        contents.write(codecs.BOM_UTF8.decode('utf-8'))
        writer = csv.writer(contents)
    
    good first issue 
    opened by marksweb 9
  • Would you consider support for more object storage providers?

    Would you consider support for more object storage providers?

    Hi there,

    I just discovered this project today, and it looks fantastic - thank you for making it!

    Would you consider supporting more providers than just AWS if they are already boto/boto3 compatible ?

    I see this code in the repo here which I think is responsible for uploading snapshots to an object storage service like AWS S3:

    def get_s3_bucket():
        from boto.s3.connection import S3Connection
    
        conn = S3Connection(app_settings.S3_ACCESS_KEY,
                            app_settings.S3_SECRET_KEY)
        return conn.get_bucket(app_settings.S3_BUCKET)
    
    
    def s3_upload(key, data):
        from boto.s3.key import Key
        bucket = get_s3_bucket()
        k = Key(bucket)
        k.key = key
        k.set_contents_from_file(data, rewind=True)
        k.set_acl('public-read')
        k.set_metadata('Content-Type', 'text/csv')
        return k.generate_url(expires_in=0, query_auth=False)
    

    In a project I work on we use the boto library to talk to s3 compatible services from other providers, and I think to add this support to django-sql-explorer, it would mainly require a adding two new parameters to the code that connects to S3.

    We have a comparable method on a project I work on where we fetch an S3-compatible bucket, which does a somewhat similar job to get_s3_bucket above.

    def object_storage_bucket(bucket_name: str):
        """
        Return the bucket identified by `bucket_name` for uploading
        and downloading files.
        """
        session = boto3.Session(region_name=settings.OBJECT_STORAGE_REGION)
    
        object_storage = session.resource(
            "s3",
            endpoint_url=settings.OBJECT_STORAGE_ENDPOINT,
            aws_access_key_id=settings.OBJECT_STORAGE_ACCESS_KEY_ID,
            aws_secret_access_key=settings.OBJECT_STORAGE_SECRET_ACCESS_KEY,
        )
        return object_storage.Bucket(bucket_name)
    

    While the example I have shared uses boto3, instead of boto, I think it would not be too complicated to add the extra params, the region_name, and endpoint_url to the code connecting to an object storage service.

    Doing so would then make this library compatible with a range of S3-compatible providers (i.e. Cloudflare, Digital ocean, Scaleway, etc), as well as open source S3-compatible object storage software like Minio, Garage and so on.

    I'm currently adding django-sql-explorer to a project I'm working on but once I'm a bit more familiar with it, would you accept a PR to add this functionality, and assuming it meets contribution standards, giving some pointers on how to have this gracefully integrated into the project?

    opened by mrchrisadams 8
  • Organize queries into a tree-like sturcture for easier navigation

    Organize queries into a tree-like sturcture for easier navigation

    In the project where we are using Django SQL explorer the number of queries has grown so large that it is hard to navigate.

    I would propose to add a field path to the query which would function like a regular filesystem path. Based on that path queries could be displayed in the list view as a tree-like structure. For example queries with names A, B, C, D and paths /research/europe/, /research/europe/, /research/usa, and sales, respectively, could be shown as

    • research
      • europe
        • A
        • B
      • usa
        • C
    • sales
      • D

    This change would be backwards compatible as the path variable would not be required and the path could default to the root directory or some special "uncategorized" category.

    Also, this would open up the possibility to use that path for access management in the future such as giving a user read or write access to all queries under a specific path. However, that is just a though and not directly linked to the current proposal.

    If that idea sounds interesting, I would be happy to prepare a PR.

    opened by eeriksp 1
  • Sql explorer save query params

    Sql explorer save query params

    Description

    This provides the functionality to save query params so that the queries execute with them each time one comes to the Query Detail page.

    Resolves: #482

    Deployment Procedures

    • [ ] Migration (Please specify app(s) below)
      • ./manage.py migrate explorer

    Tests

    Execute Manual UI Tests like the following:

    1. Create a new query with a query param and save, note the same functionality exists as previously where the query does not execute due to no value for the new param:
    Screen Shot 2022-09-06 at 2 57 16 PM
    1. Input a value for the parameter and save:
    Screen Shot 2022-09-06 at 2 57 35 PM
    1. Now add a new parameter and save:
    Screen Shot 2022-09-06 at 2 58 27 PM
    1. Now save a new value to the second parameter:
    Screen Shot 2022-09-06 at 2 58 47 PM
    1. Now navigate back to the Query List page and click on the test query:
    Screen Shot 2022-09-06 at 2 59 10 PM
    1. Validate that the new QueryParams persist and the query executed:
    Screen Shot 2022-09-06 at 2 59 35 PM

    Also, you will want to verify that the csv and JSON exports still work correctly like:

    Screen Shot 2022-09-06 at 3 04 05 PM

    Screen Shot 2022-09-06 at 3 04 22 PM

    opened by dwmorrison33 3
  • Add label to parameters

    Add label to parameters

    I embedded a query with parameters using the procedure described in #485. The problem with this is that there is no way to add an optional "label" to the parameters so as to have better control on what to disply to the users.

    I tried to change the parameter name to be used as a labe but for reasons unknown to me this doesn't work. For example take a peek at this query:

    select aa.id, aa.created_on,
    aa.dynamic_data->>'date' as "Ημερμηνία",
    aa.dynamic_data->>'authority' as "Υπηρεσία",
    aa.dynamic_data->>'mail' as "Email",
    aa.dynamic_data
    from apps_app aa 
    left join apptypes_apptype aat on 
    aa.app_type_id = aat.id
    where aat.id = 8
    and aa.dynamic_data->>'mail' like "%$$email$$%"
    and aa.dynamic_data->>'authority' like "%$$Υπηρεσία$$%"
    

    Notice that I use a unicode name for the parameter in the last line; this parameter is not displayed at all (notice I'm using the normal process explorer view not any custom ones). Also, if I wanted to write Email as the name of the parameter instead of email I'd still get email (all lowercase) in the form field label.

    One way this could be implemented (this is only for UX purposes, I haven't read the code to understand if it's possible) is to add an optional label in the field similar to the optional default value. I.e right now we can do: $$paramName:defaultValue$$, this can be changed to $$paramName:defaultValue:Label$$ (and let's suppose we don't allow : in the label).

    Is this the correct way to go? Also is this a feature we'd like to add ? If yes I'd be happy to take a look at it.

    opened by spapas 5
  • Embedding a query

    Embedding a query

    Hello friends, in a recent project I wanted to embed a query in a view for all users to be able to run it. So instead of using the provided views I wanted to properly embed the report in my views so as to use my permissions etc (the requirement was a little more complex than that but it doesn't matter).

    I didn't find any docs for that so I had to research the source code and use the query_viewmodel function. So, my query detail view is similar to this:

    
    from explorer.models import Query
    from explorer.views.utils import query_viewmodel
    
    class QueryDetailView(DetailView):
        template_name = "reports/query_detail.html"
        model = Query
    
        def get_context_data(self, **kwargs):
            context = super().get_context_data(**kwargs)
            query = self.get_object()
            query.params = dict(
                [(k[:-6], v) for k, v in self.request.GET.items() if k.endswith("_param")]
            )
    
            vm = query_viewmodel(self.request, query)
    
            # dict_keys(['tasks_enabled', 'params', 'title', 'shared', 'query', 'form', 'message', 'error', 'rows', 'data', 'headers', 'total_rows', 'duration', 'has_stats', 'snapshots', 'ql_id', 'unsafe_rendering', 'fullscreen_params'])
            context.update(vm)
            context["title"] = query.title
            return context
    

    Then I used a query_detail.html template like:

    
    {% extends "site_base.html" %}
    {% block page_content %}
    
    {% if params %}
    <form method='GET'>
        <div class="form-inline">
            {% for k, v in params.items %}
                <div class="form-group">
                    <label for="{{ k }}_param" class="control-label col-sm-4">{{ k }}:</label>
                    <div class="col-sm-7">
                        <input type="text" data-param="{{ k }}" class="param form-control" name="{{ k }}_param" id="{{ k }}_param" placeholder="parameter" value="{{ v }}" />
                    </div>
                    <div class="col-sm-1"></div>
                </div>
            {% endfor %}
        </div>
        <input type='submit' class='btn btn-primary' value='Query'>
        <a href='{{ request.path }}' class='btn btn-secondary'>Reset</a>
    </form>
    {% endif %}
    
    <div class="row">
        <div class="col-md-12">
            {% if data %}
                <table class='table'>
                    <thead>
                        <tr>
                            {% for col in headers %}
                                <th>{{ col }}</th>
                            {% endfor %}
                        </tr>
                    </thead>
                    <tbody>
                        {% for row in data %}
                            <tr>
                                {% for col in row %}
                                    <td>{{ col }}</td>
                                {% endfor %}
                            </tr>
                        {% endfor %}
                    </tbody>
                </table>
            {% endif %}
        </div>
    </div>
    {% endblock %}
    

    I'm not sure if this is the correct way to do it, can you please confirm. If yes, I'd recommend adding this in the documentation so it's easy for other users that want to embed queries. Also we may want to make the query_viewmodel function as part of the API so we should describe its inputs/outputs.

    I can provide the PR with the change to the docs if you think it will be useful.

    opened by spapas 0
  • Save Parameter key and values

    Save Parameter key and values

    I am curious if there is a way to save a query parameters value for later use instead of having to re-enter it each time one goes to the Query Detail page? I only ask because I have not been able to find an answer to that with Google and I do not see anything in the codebase to do it, but maybe I am missing something. Thank you

    opened by dwmorrison33 7
Releases(3.0.1)
  • 3.0.1(Dec 16, 2022)

    What's Changed

    • Bump actions/checkout from 2 to 3 by @dependabot in https://github.com/groveco/django-sql-explorer/pull/510
    • Bump actions/setup-python from 2 to 4 by @dependabot in https://github.com/groveco/django-sql-explorer/pull/512
    • Bump github/codeql-action from 1 to 2 by @dependabot in https://github.com/groveco/django-sql-explorer/pull/511
    • Fix for running without optional packages by @marksweb in https://github.com/groveco/django-sql-explorer/pull/515

    New Contributors

    • @dependabot made their first contribution in https://github.com/groveco/django-sql-explorer/pull/510

    Full Changelog: https://github.com/groveco/django-sql-explorer/compare/3.0...3.0.1

    Source code(tar.gz)
    Source code(zip)
  • 3.0(Dec 15, 2022)

    What's Changed

    • Document breakage of Format button due to CSRF_COOKIE_HTTPONLY (#492) by @lawson89 in https://github.com/groveco/django-sql-explorer/pull/496
    • Avoid execution of parameterised queries when viewing query by @lawson89 in https://github.com/groveco/django-sql-explorer/pull/497
    • Change sql blacklist functionality from regex to sqlparse by @lawson89 in https://github.com/groveco/django-sql-explorer/pull/498
    • Form display in popup now requires sanitize: false flag by @lawson89 in https://github.com/groveco/django-sql-explorer/pull/500
    • pre-commit hooks by @marksweb in https://github.com/groveco/django-sql-explorer/pull/504
    • Problem importing celery to enable tasks by @lawson89 in https://github.com/groveco/django-sql-explorer/pull/501
    • Feature/more s3 providers by @lawson89 in https://github.com/groveco/django-sql-explorer/pull/505
    • Check sql blacklist on execution as well as save by @lawson89 in https://github.com/groveco/django-sql-explorer/pull/506
    • Bugfix/premature imports by @lawson89 in https://github.com/groveco/django-sql-explorer/pull/508
    • 3.0 by @marksweb in https://github.com/groveco/django-sql-explorer/pull/509

    Full Changelog: https://github.com/groveco/django-sql-explorer/compare/2.5.0...3.0

    Source code(tar.gz)
    Source code(zip)
  • 2.5.0(Oct 9, 2022)

    What's Changed

    • Improved templates to make easier to customize them for integration w… by @nad2000 in https://github.com/groveco/django-sql-explorer/pull/478
    • Add pie and line chart tabs to query result preview by @eeriksp in https://github.com/groveco/django-sql-explorer/pull/481
    • docs: Fix a few typos by @timgates42 in https://github.com/groveco/django-sql-explorer/pull/488
    • Fixes Security hole in blacklist for MySQL #490 by @lawson89 in https://github.com/groveco/django-sql-explorer/pull/494

    New Contributors

    • @nad2000 made their first contribution in https://github.com/groveco/django-sql-explorer/pull/478
    • @eeriksp made their first contribution in https://github.com/groveco/django-sql-explorer/pull/481
    • @lawson89 made their first contribution in https://github.com/groveco/django-sql-explorer/pull/494

    Full Changelog: https://github.com/groveco/django-sql-explorer/compare/2.4.2...2.5.0

    Source code(tar.gz)
    Source code(zip)
  • 2.5.0-beta(Aug 31, 2022)

    What's Changed

    • Improved templates to make easier to customize them for integration w… by @nad2000 in https://github.com/groveco/django-sql-explorer/pull/478
    • Add pie and line chart tabs to query result preview by @eeriksp in https://github.com/groveco/django-sql-explorer/pull/481

    New Contributors

    • @nad2000 made their first contribution in https://github.com/groveco/django-sql-explorer/pull/478
    • @eeriksp made their first contribution in https://github.com/groveco/django-sql-explorer/pull/481

    Full Changelog: https://github.com/groveco/django-sql-explorer/compare/2.4.2...2.5.0-beta

    Source code(tar.gz)
    Source code(zip)
  • 2.4.2(Aug 30, 2022)

    What's Changed

    • Add SET to blacklisted keywords by @assem-ch in https://github.com/groveco/django-sql-explorer/pull/475
    • Fix for #483 by @spapas in https://github.com/groveco/django-sql-explorer/pull/484

    New Contributors

    • @assem-ch made their first contribution in https://github.com/groveco/django-sql-explorer/pull/475

    Full Changelog: https://github.com/groveco/django-sql-explorer/compare/2.4.1...2.4.2

    Source code(tar.gz)
    Source code(zip)
  • 2.4.1(Mar 10, 2022)

    What's Changed

    • fix extra space around sql by @fearless0307 in https://github.com/groveco/django-sql-explorer/pull/471
    • Some tests misusing assertTrue for comparisons fix by @code-review-doctor in https://github.com/groveco/django-sql-explorer/pull/474

    New Contributors

    • @code-review-doctor made their first contribution in https://github.com/groveco/django-sql-explorer/pull/474

    Full Changelog: https://github.com/groveco/django-sql-explorer/compare/2.4...2.4.1

    Source code(tar.gz)
    Source code(zip)
  • 2.4(Feb 10, 2022)

    What's Changed

    • Add missing comma by @Bubbassauro in https://github.com/groveco/django-sql-explorer/pull/462
    • Use Django built-in get_valid_filename by @SuJiKiNen in https://github.com/groveco/django-sql-explorer/pull/466
    • Upgrade JS/CSS package by @fearless0307 in https://github.com/groveco/django-sql-explorer/pull/470

    New Contributors

    • @Bubbassauro made their first contribution in https://github.com/groveco/django-sql-explorer/pull/462
    • @SuJiKiNen made their first contribution in https://github.com/groveco/django-sql-explorer/pull/466
    • @fearless0307 made their first contribution in https://github.com/groveco/django-sql-explorer/pull/470

    Full Changelog: https://github.com/groveco/django-sql-explorer/compare/2.3...2.4

    Source code(tar.gz)
    Source code(zip)
  • 2.3(Jul 24, 2021)

  • 2.2.0(Jun 14, 2021)

    • Updated docs theme to furo
    • #445: Added EXPLORER_NO_PERMISSION_VIEW setting to allow override of the "no permission" view (Fix #440)
    • #444: Updated structure of the settings docs (Fix #443)
    Source code(tar.gz)
    Source code(zip)
  • 2.1.3(May 14, 2021)

Owner
Grove Collaborative
Grove Collaborative
Django query profiler - one profiler to rule them all. Shows queries, detects N+1 and gives recommendations on how to resolve them

Django Query Profiler This is a query profiler for Django applications, for helping developers answer the question "My Django code/page/API is slow, H

Django Query Profiler 116 Dec 15, 2022
Auto-detecting the n+1 queries problem in Python

nplusone nplusone is a library for detecting the n+1 queries problem in Python ORMs, including SQLAlchemy, Peewee, and the Django ORM. The Problem Man

Joshua Carp 837 Dec 29, 2022
Organize Django settings into multiple files and directories. Easily override and modify settings. Use wildcards and optional settings files.

Organize Django settings into multiple files and directories. Easily override and modify settings. Use wildcards in settings file paths and mark setti

Nikita Sobolev 940 Jan 3, 2023
A drop-in replacement for django's ImageField that provides a flexible, intuitive and easily-extensible interface for quickly creating new images from the one assigned to the field.

django-versatileimagefield A drop-in replacement for django's ImageField that provides a flexible, intuitive and easily-extensible interface for creat

Jonathan Ellenberger 490 Dec 13, 2022
Tools to easily create permissioned CRUD endpoints in graphene-django.

graphene-django-plus Tools to easily create permissioned CRUD endpoints in graphene-django. Install pip install graphene-django-plus To make use of ev

Zerosoft 74 Aug 9, 2022
Django Serverless Cron - Run cron jobs easily in a serverless environment

Django Serverless Cron - Run cron jobs easily in a serverless environment

Paul Onteri 41 Dec 16, 2022
DCM is a set of tools that helps you to keep your data in your Django Models consistent.

Django Consistency Model DCM is a set of tools that helps you to keep your data in your Django Models consistent. Motivation You have a lot of legacy

Occipital 59 Dec 21, 2022
A standalone package to scrape financial data from listed Vietnamese companies via Vietstock

Scrape Financial Data of Vietnamese Listed Companies - Version 2 A standalone package to scrape financial data from listed Vietnamese companies via Vi

Viet Anh (Vincent) Tran 45 Nov 16, 2022
Get inside your stronghold and make all your Django views default login_required

Stronghold Get inside your stronghold and make all your Django views default login_required Stronghold is a very small and easy to use django app that

Mike Grouchy 384 Nov 23, 2022
django-dashing is a customisable, modular dashboard application framework for Django to visualize interesting data about your project. Inspired in the dashboard framework Dashing

django-dashing django-dashing is a customisable, modular dashboard application framework for Django to visualize interesting data about your project.

talPor Solutions 703 Dec 22, 2022
A Django app to accept payments from various payment processors via Pluggable backends.

Django-Merchant Django-Merchant is a django application that enables you to use multiple payment processors from a single API. Gateways Following gate

Agiliq 997 Dec 24, 2022
📊📈 Serves up Pandas dataframes via the Django REST Framework for use in client-side (i.e. d3.js) visualizations and offline analysis (e.g. Excel)

Django REST Pandas Django REST Framework + pandas = A Model-driven Visualization API Django REST Pandas (DRP) provides a simple way to generate and se

wq framework 1.2k Jan 1, 2023
This website serves as an online database (hosted via SQLLite) for fictional businesses in the area to store contact information (name, email, phone number, etc.) for fictional customers.

Django-Online-Business-Database-Project this project is still in progress Overview of Website This website serves as an online database (hosted via SQ

null 1 Oct 30, 2021
Django-gmailapi-json-backend - Email backend for Django which sends email via the Gmail API through a JSON credential

django-gmailapi-json-backend Email backend for Django which sends email via the

Innove 1 Sep 9, 2022
System checks for your project's environment.

django-version-checks System checks for your project's environment. Requirements Python 3.6 to 3.9 supported. Django 2.2 to 3.2 supported. Are your te

Adam Johnson 33 Dec 22, 2022
A fresh approach to autocomplete implementations, specially for Django. Status: v3 stable, 2.x.x stable, 1.x.x deprecated. Please DO regularely ping us with your link at #yourlabs IRC channel

Features Python 2.7, 3.4, Django 2.0+ support (Django 1.11 (LTS), is supported until django-autocomplete-light-3.2.10), Django (multiple) choice suppo

YourLabs 1.7k Jan 1, 2023
Django-environ allows you to utilize 12factor inspired environment variables to configure your Django application.

Django-environ django-environ allows you to use Twelve-factor methodology to configure your Django application with environment variables. import envi

Daniele Faraglia 2.7k Jan 7, 2023
Generate generic activity streams from the actions on your site. Users can follow any actors' activities for personalized streams.

Django Activity Stream What is Django Activity Stream? Django Activity Stream is a way of creating activities generated by the actions on your site. I

Justin Quick 2.1k Dec 29, 2022
Rosetta is a Django application that eases the translation process of your Django projects

Rosetta Rosetta is a Django application that facilitates the translation process of your Django projects. Because it doesn't export any models, Rosett

Marco Bonetti 909 Dec 26, 2022