A Django app that creates automatic web UIs for Python scripts.

Overview

Wooey!

Build Status Deploy-To-Pypi Deploy-To-Docker codecov Join the chat at https://gitter.im/wooey/Wooey

Wooey is a simple web interface to run command line Python scripts. Think of it as an easy way to get your scripts up on the web for routine data analysis, file processing, or anything else.

Wooey was envisioned as a system to allow data analysts to be able to easily:

1. Autodocument workflows for data analysis
    (simple model saving).
2. Enable fellow co-workers with no command line
    experience to utilize python scripts.
3. Enable the easy wrapping of any program in simple
   python instead of having to use language specific 
   to existing tools such as Galaxy.

For installation and other instructions, check out our documentation or give Wooey a test drive at our demo-server!

Comments
  • Celery TypeError

    Celery TypeError "cannot serialize '_io.BufferedReader' object

    I just updated my Wooey install to today's new version and immediately hit a problem. Any script I try to run returns an error (with live updating, which is wonderful!) and in the Celery worker window I get the following message:

    [2016-07-28 09:16:07,984: INFO/MainProcess] Received task: wooey.tasks.submit_script[add3df58-d675-44f0-8380-6ac85089df08]
    [2016-07-28 09:16:08,121: ERROR/MainProcess] Task wooey.tasks.submit_script[add3df58-d675-44f0-8380-6ac85089df08] raised unexpected: TypeError("cannot serialize '_io.BufferedReader' object",)
    Traceback (most recent call last):
      File "C:\Users\rollinga\AppData\Local\Programs\Python\Python35-32\lib\site-packages\celery\app\trace.py", line 240, in trace_task
        R = retval = fun(*args, **kwargs)
      File "C:\Users\rollinga\AppData\Local\Programs\Python\Python35-32\lib\site-packages\celery\app\trace.py", line 438, in __protected_call__
        return self.run(*args, **kwargs)
      File "C:\Users\rollinga\AppData\Local\Programs\Python\Python35-32\lib\site-packages\wooey\tasks.py", line 109, in submit_script
        qout, pout = output_monitor_queue(proc.stdout)
      File "C:\Users\rollinga\AppData\Local\Programs\Python\Python35-32\lib\site-packages\wooey\tasks.py", line 41, in output_monitor_queue
        p.start()
      File "C:\Users\rollinga\AppData\Local\Programs\Python\Python35-32\lib\site-packages\billiard\process.py", line 137, in start
        self._popen = Popen(self)
      File "C:\Users\rollinga\AppData\Local\Programs\Python\Python35-32\lib\site-packages\billiard\forking.py", line 263, in __init__
        dump(process_obj, to_child, HIGHEST_PROTOCOL)
      File "C:\Users\rollinga\AppData\Local\Programs\Python\Python35-32\lib\site-packages\billiard\py3\reduction.py", line 60, in dump
        ForkingPickler(file, protocol).dump(obj)
    TypeError: cannot serialize '_io.BufferedReader' object
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\rollinga\AppData\Local\Programs\Python\Python35-32\lib\site-packages\billiard\forking.py", line 459, in main
        self = load(from_parent)
    EOFError: Ran out of input
    

    I tried downgrading my Celery install from 3.1.23, first to 3.1.15 then to 3.1.12 (which is what I had before the Wooey upgrade) to no avail. Do you have any suggestions?

    bug python3 
    opened by arolling 35
  • wooify fails with django 1.9

    wooify fails with django 1.9

    Installing latest wooey on Python 3.4.3 on Win7 65bit, without previous install of django, installed django 1.9. Running wooify -p test caused this error:

    λ wooify --version
    Traceback (most recent call last):
      File "d:\anaconda3\lib\runpy.py", line 170, in _run_module_as_main
        "__main__", mod_spec)
      File "d:\anaconda3\lib\runpy.py", line 85, in _run_code
        exec(code, run_globals)
      File "D:\Anaconda3\Scripts\wooify.exe\__main__.py", line 5, in <module>
      File "d:\anaconda3\lib\site-packages\wooey\backend\command_line.py", line 8, in <module>
        from .. import django_compat
      File "d:\anaconda3\lib\site-packages\wooey\django_compat.py", line 51, in <module>
        from django.contrib.contenttypes.fields import GenericForeignKey
      File "d:\anaconda3\lib\site-packages\django\contrib\contenttypes\fields.py", line 5, in <module>
        from django.contrib.contenttypes.models import ContentType
      File "d:\anaconda3\lib\site-packages\django\contrib\contenttypes\models.py", line 159, in <module>
        class ContentType(models.Model):
      File "d:\anaconda3\lib\site-packages\django\db\models\base.py", line 94, in __new__
        app_config = apps.get_containing_app_config(module)
      File "d:\anaconda3\lib\site-packages\django\apps\registry.py", line 239, in get_containing_app_config
        self.check_apps_ready()
      File "d:\anaconda3\lib\site-packages\django\apps\registry.py", line 124, in check_apps_ready
        raise AppRegistryNotReady("Apps aren't loaded yet.")
    django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.
    

    Installing django 1.8 (pip install django==1.8) fixed it (albeit giving a different error, I'll look into it and open a different issue if needed).

    opened by yoavram 19
  • job expiration not working

    job expiration not working

    Hi ,

    I still have problem with WOOEY_JOB_EXPIRATION parameter. I set this to:

    user_job_expire=timedelta(hours=1) anonymous_job_expire=timedelta(minutes=10)

    WOOEY_JOB_EXPIRATION = {'user':user_job_expire,'anonymous':anonymous_job_expire}

    But no success. Please help me to fix

    Aidas

    opened by aydas 17
  • Import files to script

    Import files to script

    How can I import my custom files?
    I need to use my files inside the script.
    print(os.path.dirname(sys.argv[0])) gives me /opt/DO_wooey/media/wooey_scripts, I decided to put my custom files in this directory, but it does not work, the script still gives me this error: OSError: SavedModel file does not exist at: test_build/{saved_model.pbtxt|saved_model.pb}. screen shot 2017-08-21 at 23 43 25

    opened by toert 17
  • Script url changes

    Script url changes

    This addresses an issue raised in #43. It creates a new scheme for script urls and versions and adds in a dropdown box for the user to select older scripts.

    opened by Chris7 17
  • Non-UTF-8 code in django-admin.exe but no encoding declared

    Non-UTF-8 code in django-admin.exe but no encoding declared

    Running wooify -p test produces:

      File "D:\Anaconda3\envs\wooey\Scripts\django-admin.exe", line 1
    SyntaxError: Non-UTF-8 code starting with '\x90' in file D:\Anaconda3\envs\wooey\Scripts\django-admin.exe on line 1, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
    Traceback (most recent call last):
      File "d:\anaconda3\envs\wooey\lib\runpy.py", line 170, in _run_module_as_main
        "__main__", mod_spec)
      File "d:\anaconda3\envs\wooey\lib\runpy.py", line 85, in _run_code
        exec(code, run_globals)
      File "D:\Anaconda3\envs\wooey\Scripts\wooify.exe\__main__.py", line 9, in <module>
      File "d:\anaconda3\envs\wooey\lib\site-packages\wooey\backend\command_line.py", line 81, in bootstrap
        with open(to_name, 'wb') as new_file:
    FileNotFoundError: [Errno 2] No such file or directory: 'D:\\workspace\\wooeytest\\test\\test\\.\\middleware.py'
    

    Windows 7, 64bit, Python 3.4.3, Django 1.8.4, wooey 0.9.1.

    opened by yoavram 15
  • i18n: Add translation files for de, fr, nl.

    i18n: Add translation files for de, fr, nl.

    To begin process of adding working i18n these files add base translations from the current strings. They are machine translated using Google's service (https://translate.google.com/toolkit/) and so likely broken.

    The NL looks vaguely right to my limited knowledge but I will check them all with native speakers.

    opened by mfitzp 15
  • Can not execute the task when I add TEMPLATES.DIRS

    Can not execute the task when I add TEMPLATES.DIRS

    I want to custom the templates, so I add the string "os.path.join(BASE_DIR, 'templates')," into the DIRS list of settings.TEMPLATES, then I copy the templates directory to my project. I can custom the templates successfully, but get the following errors when I execute the task: 10:54:49 web.1 | Internal Server Error: /scripts/violinplot/ 10:54:49 web.1 | Traceback (most recent call last): 10:54:49 web.1 | File "/home/xujm/soft/Anaconda/anaconda3/envs/wooey/lib/python3.5/site-packages/django/utils/datastructures.py", line 83, in getitem 10:54:49 web.1 | list_ = super(MultiValueDict, self).getitem(key) 10:54:49 web.1 | KeyError: 'wooey_type' 10:54:49 web.1 | 10:54:49 web.1 | During handling of the above exception, another exception occurred: 10:54:49 web.1 | 10:54:49 web.1 | Traceback (most recent call last): 10:54:49 web.1 | File "/home/xujm/soft/Anaconda/anaconda3/envs/wooey/lib/python3.5/site-packages/django/core/handlers/base.py", line 149, in get_response 10:54:49 web.1 | response = self.process_exception_by_middleware(e, request) 10:54:49 web.1 | File "/home/xujm/soft/Anaconda/anaconda3/envs/wooey/lib/python3.5/site-packages/django/core/handlers/base.py", line 147, in get_response 10:54:49 web.1 | response = wrapped_callback(request, *callback_args, **callback_kwargs) 10:54:49 web.1 | File "/home/xujm/soft/Anaconda/anaconda3/envs/wooey/lib/python3.5/site-packages/django/views/generic/base.py", line 68, in view 10:54:49 web.1 | return self.dispatch(request, *args, **kwargs) 10:54:49 web.1 | File "/home/xujm/soft/Anaconda/anaconda3/envs/wooey/lib/python3.5/site-packages/django/views/generic/base.py", line 88, in dispatch 10:54:49 web.1 | return handler(request, *args, **kwargs) 10:54:49 web.1 | File "/home/xujm/soft/Anaconda/anaconda3/envs/wooey/lib/python3.5/site-packages/wooey/views/views.py", line 160, in post 10:54:49 web.1 | data = super(WooeyScriptView, self).post(*args, **kwargs) 10:54:49 web.1 | File "/home/xujm/soft/Anaconda/anaconda3/envs/wooey/lib/python3.5/site-packages/wooey/views/views.py", line 91, in post 10:54:49 web.1 | form = utils.get_master_form(pk=post['wooey_type']) 10:54:49 web.1 | File "/home/xujm/soft/Anaconda/anaconda3/envs/wooey/lib/python3.5/site-packages/django/utils/datastructures.py", line 85, in getitem 10:54:49 web.1 | raise MultiValueDictKeyError(repr(key)) 10:54:49 web.1 | django.utils.datastructures.MultiValueDictKeyError: "'wooey_type'"

    opened by zjhzxjm 14
  • True/False params are not output when executing a command

    True/False params are not output when executing a command

    Hey guys, I have an argument that looks like this:

    main_options_group.add_argument('--my_optional_arg', default=False, action='store_true')
    

    This is correctly stored as a ScriptParameters object when I tick the checkbox in the Wooey interface. However when Celery executes the command it does not include --my_optional_arg in the command that is executed.

    Looking at the source, it seems that param.get_subprocess_value() does not return a "value" for the param, causing the condition in the "if" statement on line 79 of utils.py to fail and ultimately preventing the param from being output correctly.

    See my pdb log below. You can see that after executing line 78 "subproc_value" is None, despite param.value being True

    (Pdb) l
     73             if subproc_dict is None:
     74                 continue
     75             subproc_param = subproc_dict['parameter']
     76             if subproc_param not in param_dict:
     77                 param_dict[subproc_param] = []
     78  ->         subproc_value = subproc_dict.get('value', None)
     79             if subproc_value:
     80                 param_dict[subproc_param].append(subproc_value)
     81         for param, values in param_dict.items():
     82             for value in values:
     83                 if param:
    (Pdb) n
    > .../wooey/backend/utils.py(79)get_job_commands()
    -> if subproc_value:
    (Pdb) subproc_value
    (Pdb) param._value
    u'true'
    (Pdb) param.value
    True
    (Pdb) param.get_subprocess_value()
    {u'parameter': u'--my_optional_arg'}
    
    opened by hottwaj 14
  • WOOEY_REALTIME_CACHE is not work for me

    WOOEY_REALTIME_CACHE is not work for me

    Please, show working example of useing it. How must I set my settings for the realtime update of the script output? I see only one result after end of my script.

    opened by abicorios 12
  • Cannot start Celery process

    Cannot start Celery process

    Hi, as someone new to Django I've been trying to use Wooey as a front end to several testing scripts. Unfortunately, running them without Celery seems to block everything and crash and I can't manage to get Celery running. As per the documentation (I'm on Windows), I've been running

    python manage.py celery beat
    python manage.py celery worker -c 1 -l info
    python manage.py runserver
    

    but the celery worker process never really starts. The relevant error seems to be:

    [2016-06-22 13:53:35,522: INFO/Worker-1] child process 7068 calling self.run()
    [2016-06-22 13:53:35,663: ERROR/Worker-1] Process Worker-1
    Traceback (most recent call last):
      File "C:\{path}\Programs\Python\Python35-32\lib\site-packages\kombu\utils\__init__.py", line 323, in __get__
        return obj.__dict__[self.__name__]
    KeyError: 'backend'
    

    Then a series of cascading errors, then something like Process 'Worker-14' pid:4992 exited with 'exitcode 1'. I have spent a lot of time trying to google the source of the problem, but I am too new to Django and Celery to figure this out. Is there something I should have done, that is so basic it isn't in the docs?

    Alternately, the scripts we are trying to run with Wooey seem to work perfectly fine with Celery flagged as false, as long as we take the threading out of them (which is used to send and receive data through a serial port). Will getting Celery running solve this problem or is this too far away from the intended usage of Wooey?

    opened by arolling 12
  • Documentation not building

    Documentation not building

    I ran into some questions not covered in the documentation. Through the issues here and, trial and error I managed to figure it out. My plan was to add some information to the docs for other users. However, it seems that the docs on readthedocs are not the same as here on Github and I also can´t build the docs myself through Sphinx. Is there perhaps an issue with the setup of the docs?

    opened by michielap 0
  • problem with Python3.10 and Ubuntu 22.04

    problem with Python3.10 and Ubuntu 22.04

    Dear developper

    I have a problem. I was using wooey on ubuntu 20.04 and python3.8 and it was working perfectly. However, last week i update ubuntu and python and now it is not working anymore. the problem is that i get error in the wooey web server but i can not find out any information about the error to try to debug.

    can you please help me?

    cheers Luigi

    opened by lfaino 0
  • Official Docker Image

    Official Docker Image

    Was glad to see Wooey available on docker. https://hub.docker.com/u/wooey I downloaded the latest image and ran it , but it only executes the tests and then exists. What am i missing ?

    documentation request 
    opened by pymenow 5
  • Is there any way to add Scrapy based project in Wooey ?

    Is there any way to add Scrapy based project in Wooey ?

    I want to add some of my Scrapy based projects Wooey. As I can see only single script based project can be added in Wooey, so I want to know, is there any way to add Scrapy like project which have a file structure with multiple scripts?

    opened by adnan-alam 1
  • Mutually exclusive groups don't appear to work

    Mutually exclusive groups don't appear to work

    A parser with a mutually exclusive argument group behaves pretty strangely. I've noted two problems:

    • The arguments always end up as optional, even if the group is marked as required.
      • This is really the larger issue for me
    • You can enter input for both and don't get an error until the script actually runs

    Here's a small script recreating both issues:

    import argparse
    import sys
    
    parser = argparse.ArgumentParser(
        description="Parser with required mutually exclusive group."
    )
    parser.add_argument("--arg", type=str, required=True)
    
    mutex_grp = parser.add_mutually_exclusive_group(required=True)
    mutex_grp.add_argument("--first", action="store_true")
    mutex_grp.add_argument("--second", action="store_true")
    
    
    def main():
        args = parser.parse_args()
        print(args)
        return 0
    
    
    if __name__ == "__main__":
        sys.exit(main())
    

    I think Gooey has support for mutex groups, so maybe inspiration can be taken from there?

    bug 
    opened by slarse 2
  • Python script works on command line but not in Wooey

    Python script works on command line but not in Wooey

    I've got a non-technical employee that needs access to Python scripts that we need to use to conduct our business. I've gotten Wooey working but one of the scripts breaks. I love this concept - my employee doesn't understand Python, Linux, or any other myriad of aspects involved with running this script. So, if I can get this working, it'll be awesome.

    The script is called dnstwist.py (https://github.com/elceef/dnstwist/blob/master/dnstwist.py). In the Wooey console, it generates the following errors:

    Traceback (most recent call last): File "/home/ubuntu/twisty/twisty/user_uploads/wooey_scripts/dnstwist.py", line 1009, in main() File "/home/ubuntu/twisty/twisty/user_uploads/wooey_scripts/dnstwist.py", line 1003, in main p_cli(generate_cli(domains)) File "/home/ubuntu/twisty/twisty/user_uploads/wooey_scripts/dnstwist.py", line 120, in p_cli sys.stdout.write(data) UnicodeEncodeError: 'ascii' codec can't encode characters in position 3628-3629: ordinal not in range(128)

    I'm pretty sure it has to do with how the data is formatted in 3 columns in the output but I don't know how to fix it. Any help would be greatly appreciated.

    opened by razermouse 8
Releases(v0.13.2)
  • v0.13.2(Oct 5, 2022)

    Note: 0.13.0/1 were failed releases due to github action issues. This is a light release, mostly around bug fixes and minor quality of life improvements.

    New Features

    Scripts now track who created and last updated them #354

    Improvements

    Improvements to task error tracking #340 ScriptParameter field extended to support users who have a LOT of choices #351

    Fixes

    Search works again #355 Scrapbook works again #339 Fixture loading #356

    Source code(tar.gz)
    Source code(zip)
  • v0.12.0(Apr 16, 2020)

    New Features

    Script deletion experience improved #313 Spanish translations added #306 Django 2.2 and Django 3.0 Support #284 Official Docker image added at https://hub.docker.com/r/wooey/wooey Admin interface added for Script Versions

    Updates

    Builds have been moved from Appveyor and Travis to Github Actions #314 Update to boto3 #304

    Source code(tar.gz)
    Source code(zip)
  • 0.11.0(Nov 30, 2019)

    Wooey 0.11.0

    New Features

    1. WooeyWidgets, which enable custom form input elements to be created and used. #175
    2. Korean translations added #254
    3. Improved UI to not allow job operations on message brokers that do not allow them. #285
    4. Django2 Support. #271

    Bug Fixes

    1. Fix bug where all parameters from all subparsers were needed to validate in order to submit a job. #299
    2. Fix bug with escaping parameter arguments that prevented special characters from being used. #296
    3. Fix bug where multiple initial files for a cloned job were not populated. #255
    4. Fix bug in parsing multiple arguments where argparse specifies action=append #270
    5. Fix bug in cleaning up empty jobs where workers cannot be contacted. #277
    6. Fix bug where scripts on remote workers were not invalidated after updates on main server. #145
    7. Fix race condition where celery tasks would start before database transaction finished. #297
    8. Handle characters in script version that need to be escaped for urls. #298
    Source code(tar.gz)
    Source code(zip)
  • 0.10.0(May 20, 2018)

    Wooey 0.10.0

    New Features

    1. Added docker files for development and example deployments!
    2. Better documentation!:
    1. Subparser Support! Subparsers are now supported for argparse. With this completed, we can begin adding support for other interfaces such as click
    2. Added checksums to scripts. Scripts now have a checksum so duplicate scripts are not created (and this paves the way for supporting better automatic updates of scripts)
    3. Jobs can be cloned into previous script versions. Previously, the clone button cloned a job into the latest version of a script. Now, jobs can be cloned into previous versions.

    Bug Fixes

    1. Errors from adding scripts are returned as a message instead of an Exception.
    2. Dead jobs are now automatically cleaned up. (this removes jobs that are in a state of limbo due to a server crash, etc.).
    3. Attempts to access a job that a user did not have permission to access resulted in a 500 error. This now shows the proper page indicating the user has no access to that job.
    4. Fixed parsing of default argument parameters that were lists or functions.
    5. Fixed zip files overwriting nested output.

    Version Support

    1. Supports Django 1.10/1.11 and Celery 4.x
    2. Dropped compatibility layers for Django 1.7 and python 3.3
    Source code(tar.gz)
    Source code(zip)
  • 0.9.10(Dec 20, 2017)

  • 0.9.9(Sep 5, 2017)

    This is a quick release to address https://github.com/wooey/Wooey/issues/189, where clinto was not reporting errors in parsing scripts through the frontend.

    Source code(tar.gz)
    Source code(zip)
  • 0.9.8(Jan 1, 2017)

    Wooey v0.9.8

    This is primarily a release to address issue #163 where updated scripts would duplicate group names. However, it is a huge release in terms of internationalization!

    New Features

    1. Internationalization is now enabled by default in the bootstrapped version of Wooey.
    2. Simplified Chinese support has been added thanks to @zjhzxjm!

    Bug Fixes

    1. Parameter groups could be duplicated
    2. New parameters on script updates would be made when parameter order was rearranged
    3. Fixed CSS issue causing the script search sidebar to be hidden
    Source code(tar.gz)
    Source code(zip)
  • 0.9.6(Nov 29, 2016)

  • 0.9.5(Sep 11, 2016)

    This addresses the remaining bugs from version 0.93: #148 and #149 -- Switch to using threads to monitor process output for better cross-platform compatibility #152 -- Fix for argumentless scripts.

    Source code(tar.gz)
    Source code(zip)
  • 0.9.4(Aug 16, 2016)

  • v0.9.3(Jul 28, 2016)

    Major Features

    Real time updates of Job status

    The output of scripts as well and execution status of a script will be updated in real time so there is no need to reload a page for job updates. By default, this makes use of the database to store job information, but can be easily configured to store this information in a cache layer via the WOOEY_REALTIME_CACHE setting.

    Improved updates to scripts

    Script parameters are now more intelligently created and parameters that are unchanged between script versions will not be updated. Via the command line, this behavior can be achieved by adding the --update flag to the addscript command and is automatically performed when updating scripts via the admin.

    Reduced file duplication

    Wooey now performs a checksum on uploaded files to identify duplicated files, and adds a permission layer to users that allows multiple users to access the same uploads (provided that user had the file in the first place to upload!). As an added benefit, this setup paves the way for a media dashboard that will allow users and groups to easily share files with one another.

    Minor Features

    • An awesome user, @manicmaniac , added translations for Japanese.
    • Automatic deletion of jobs older than a given date
    Source code(tar.gz)
    Source code(zip)
Owner
Wooey
Automatic web UIs for Python scripts
Wooey
Simple tagging for django

django-taggit This is a Jazzband project. By contributing you agree to abide by the Contributor Code of Conduct and follow the guidelines. django-tagg

Jazzband 3k Jan 02, 2023
A ToDO Rest API using Django, PostgreSQL and Docker

This Rest API uses PostgreSQL, Docker and Django to implements a ToDo application.

Brenno Lima dos Santos 2 Jan 05, 2022
A slick ORM cache with automatic granular event-driven invalidation.

Cacheops A slick app that supports automatic or manual queryset caching and automatic granular event-driven invalidation. It uses redis as backend for

Alexander Schepanovski 1.7k Jan 03, 2023
REST API con Python, Django y MySQL (GET, POST, PUT, DELETE)

django_api_mysql REST API con Python, Django y MySQL (GET, POST, PUT, DELETE) REST API con Python, Django y MySQL (GET, POST, PUT, DELETE)

Andrew 1 Dec 28, 2021
A Django application that provides country choices for use with forms, flag icons static files, and a country field for models.

Django Countries A Django application that provides country choices for use with forms, flag icons static files, and a country field for models. Insta

Chris Beaven 1.2k Dec 31, 2022
Agenda feita usando o django para adicionar eventos

Agenda de Eventos Projeto Agenda com Django Inicio O projeto foi iniciado no Django, usando o models.py foi adicionado os dados dos eventos e feita as

Bruno Fernandes 1 Apr 14, 2022
Django server-side adapter for Inertia.js

django-inertia Django server-side new adapter for Inertia.js. Getting Started Install the package pip install django-inertia Configure your project A

Samuel Girardin 14 Sep 16, 2022
Django-Audiofield is a simple app that allows Audio files upload, management and conversion to different audio format (mp3, wav & ogg), which also makes it easy to play audio files into your Django application.

Django-Audiofield Description: Django Audio Management Tools Maintainer: Areski Contributors: list of contributors Django-Audiofield is a simple app t

Areski Belaid 167 Nov 10, 2022
A Django/Python web app that functions as a digital diary

My Django Diary Full-stack web application that functions as a digital diary using Django, Python, SQLite, HTML & CSS. Things I learned during this pr

1 Sep 30, 2022
Automatically reload your browser in development.

django-browser-reload Automatically reload your browser in development. Requirements Python 3.6 to 3.10 supported. Django 2.2 to 4.0 supported. Are yo

Adam Johnson 254 Jan 04, 2023
:couple: Multi-user accounts for Django projects

django-organizations Summary Groups and multi-user account management Author Ben Lopatin (http://benlopatin.com / https://wellfire.co) Status Separate

Ben Lopatin 1.1k Jan 01, 2023
Twitter Bootstrap for Django Form

Django bootstrap form Twitter Bootstrap for Django Form. A simple Django template tag to work with Bootstrap Installation Install django-bootstrap-for

tzangms 557 Oct 19, 2022
Django Login Api With Python

How to run this project Download and extract this project Create an environment and install all the libraries from requiements.txt pip freeze -r requi

Vikash Kisku 1 Dec 10, 2021
A Django app for working with BTCPayServer

btcpay-django A Django app for working with BTCPayServer Installation pip install btcpay-django Developers Release To cut a release, run bumpversion,

Crawford 3 Nov 20, 2022
Template de desarrollo Django

Template de desarrollo Django Python Django Docker Postgres Nginx CI/CD Descripción del proyecto : Proyecto template de directrices para la estandariz

Diego Esteban 1 Feb 25, 2022
Advanced school management system written in Django :)

Advanced school management system written in Django :) ⚙️ Config the project First you should make venv for this project. So in the main root of proje

AminAli Mazarian 72 Dec 05, 2022
Strict separation of config from code.

Python Decouple: Strict separation of settings from code Decouple helps you to organize your settings so that you can change parameters without having

Henrique Bastos 2.3k Jan 04, 2023
The friendly PIL fork (Python Imaging Library)

Pillow Python Imaging Library (Fork) Pillow is the friendly PIL fork by Alex Clark and Contributors. PIL is the Python Imaging Library by Fredrik Lund

Pillow 10.4k Jan 03, 2023
django-tables2 - An app for creating HTML tables

django-tables2 - An app for creating HTML tables django-tables2 simplifies the task of turning sets of data into HTML tables. It has native support fo

Jan Pieter Waagmeester 1.6k Jan 03, 2023
Django REST Client API

Django REST Client API Client data provider API.

Ulysses Monteiro 1 Nov 08, 2021