django-tortoise


Namedjango-tortoise JSON
Version 0.0.1 PyPI version JSON
download
home_pagehttps://github.com/KhDenys/django-tortoise
SummaryIntegration of Tortoise orm into a Django project with one line of code
upload_time2022-12-25 14:23:54
maintainer
docs_urlNone
authorKhDenys
requires_python>=3.8
licenseMIT
keywords django tortoise tortoise-ormsql postgres psql sqlite aiosqlite psycopg asyncpg relational database orm rdbms object mapper async asyncio aio monkey patching monkey-patching
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ===============
django-tortoise
===============

This python package is the simplest way to use Tortoise ORM in an existing (maybe not)
Django project that uses sqlite or PostgreSQL databases


Features
--------

* Saving all Django ORM advantages (migrations - the biggest one)
* Monkey patching existing Django models with generated on-the-fly Tortoise ORM models
* Generated Tortoise ORM models have the same behavior as Django models (fields behavior)
* Support all Django models fields and validators added to them (except FileFiled, FilePathField, ImageField)
* Support default database only (DATABASES['default'] from the setting.py)
* You can use Django models or Tortoise ORM models when you want (use Django models when it's more suitable than usage of Tortoise ORM models)
* There are enough limitations that are not described here, so most likely some thing is not supported (pre-alpha release =)
* Easy to use - just one line of code... Okay, two ;)


Quickstart
----------

Install django-tortoise::

    pip install django-tortoise

Modify the asgi.py in the main Django project folder:

.. code-block:: python

    import os

    from django.core.asgi import get_asgi_application
    from django_tortoise import get_boosted_asgi_application  # first line

    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'proj.settings')

    application = get_asgi_application()

    # get_boosted_asgi_application function monkey patch all registered apps models;
    # each model will has abjects attribute (the objects attribute was not modified),
    # which is a Tortoise model actually
    application = get_boosted_asgi_application(application)  # second line

Now you can use all valid Tortoise ORM queries via <model>.abjects attribute:

.. code-block:: python

    await ModelA.abjects.get(id=id)


Running Tests
-------------

::

    $ tox

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/KhDenys/django-tortoise",
    "name": "django-tortoise",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "",
    "keywords": "django,tortoise,tortoise-ormsql,postgres,psql,sqlite,aiosqlite,psycopg,asyncpg,relational,database,orm,rdbms,object,mapper,async,asyncio,aio,monkey,patching,monkey-patching",
    "author": "KhDenys",
    "author_email": "KhD01214@outlook.com",
    "download_url": "",
    "platform": null,
    "description": "===============\ndjango-tortoise\n===============\n\nThis python package is the simplest way to use Tortoise ORM in an existing (maybe not)\nDjango project that uses sqlite or PostgreSQL databases\n\n\nFeatures\n--------\n\n* Saving all Django ORM advantages (migrations - the biggest one)\n* Monkey patching existing Django models with generated on-the-fly Tortoise ORM models\n* Generated Tortoise ORM models have the same behavior as Django models (fields behavior)\n* Support all Django models fields and validators added to them (except FileFiled, FilePathField, ImageField)\n* Support default database only (DATABASES['default'] from the setting.py)\n* You can use Django models or Tortoise ORM models when you want (use Django models when it's more suitable than usage of Tortoise ORM models)\n* There are enough limitations that are not described here, so most likely some thing is not supported (pre-alpha release =)\n* Easy to use - just one line of code... Okay, two ;)\n\n\nQuickstart\n----------\n\nInstall django-tortoise::\n\n    pip install django-tortoise\n\nModify the asgi.py in the main Django project folder:\n\n.. code-block:: python\n\n    import os\n\n    from django.core.asgi import get_asgi_application\n    from django_tortoise import get_boosted_asgi_application  # first line\n\n    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'proj.settings')\n\n    application = get_asgi_application()\n\n    # get_boosted_asgi_application function monkey patch all registered apps models;\n    # each model will has abjects attribute (the objects attribute was not modified),\n    # which is a Tortoise model actually\n    application = get_boosted_asgi_application(application)  # second line\n\nNow you can use all valid Tortoise ORM queries via <model>.abjects attribute:\n\n.. code-block:: python\n\n    await ModelA.abjects.get(id=id)\n\n\nRunning Tests\n-------------\n\n::\n\n    $ tox\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Integration of Tortoise orm into a Django project with one line of code",
    "version": "0.0.1",
    "split_keywords": [
        "django",
        "tortoise",
        "tortoise-ormsql",
        "postgres",
        "psql",
        "sqlite",
        "aiosqlite",
        "psycopg",
        "asyncpg",
        "relational",
        "database",
        "orm",
        "rdbms",
        "object",
        "mapper",
        "async",
        "asyncio",
        "aio",
        "monkey",
        "patching",
        "monkey-patching"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "md5": "0768b116481a878e4d0b0f86974a2ef1",
                "sha256": "d453eeaa9c875293b881c9f77e8a7532ca59b1f7c2fa82ea801f13e3288f6d01"
            },
            "downloads": -1,
            "filename": "django_tortoise-0.0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "0768b116481a878e4d0b0f86974a2ef1",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 10046,
            "upload_time": "2022-12-25T14:23:54",
            "upload_time_iso_8601": "2022-12-25T14:23:54.744479Z",
            "url": "https://files.pythonhosted.org/packages/33/85/5cb24fc0c07250326ee90b606b325db8e8221cb6dbd17d79de430dfbd67c/django_tortoise-0.0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2022-12-25 14:23:54",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": "KhDenys",
    "github_project": "django-tortoise",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "tox": true,
    "lcname": "django-tortoise"
}
        
Elapsed time: 0.02731s