===============
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"
}