{ "info": { "author": "Kenneth Reitz, Vimal Aravindashan", "author_email": "vimal.aravindashan@gmail.com", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Framework :: Django", "Framework :: Django :: 1.8", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "Django Connection URL\n~~~~~~~~~~~~~~~~~~~~~\n\n.. image:: https://secure.travis-ci.org/f0r4y312/django-connection-url.png?branch=master\n :target: http://travis-ci.org/f0r4y312/django-connection-url\n\nThis is a fork of Kenneth Reitz's `DJ-Database-URL `_\nextended to support cache URLs as well.\n\nThere are some significant changes to the original, most notably, ``.parse()``\nhas been dropped. You can pass URLs and environment variables to ``.config()``.\nThe passed value will be first checked if it is an environment variable, and if\nnot found it will be parsed as a URL. ``.config()`` will not use ``DATABASE_URL``\nas default and therefore cannot be called without parameters.\n\nThe ``connection_url.config`` method returns a Django database/cache connection\ndictionary, populated with all the data specified in your URL. Multiple\ndictionary objects can be passed to ``.config()`` to set default values for\nsettings and options. Keyword arguments passed will override any default or\nparsed values.\n\nThis simple Django utility allows you to utilize the\n`12factor `_ inspired\n``DATABASE_URL`` environment variable to configure your Django application.\n\nSupported Databases\n-------------------\n\nSupport currently exists for PostgreSQL, PostGIS, MySQL, MySQL (GIS),\nOracle, Oracle (GIS), and SQLite.\n\nSupported Caches\n-------------------\n\nSupport currently exists for Redis, Memcached and local memory cache.\n\nInstallation\n------------\n\nInstallation is simple::\n\n $ pip install django-connection-url\n\nUsage\n-----\n\nConfigure your database in ``settings.py`` from ``DATABASE_URL``::\n\n import connection_url\n\n DATABASES['default'] = connection_url.config('DATABASE_URL')\n\nProvide an arbitrary Database URL::\n\n DATABASES['default'] = connection_url.config('postgres://...')\n\nSet default values and override with keyword arguments::\n\n connection_url.config('mysql://username:password@hostname:5432/database?TIMEOUT=100', {\n 'ENGINE': 'django.contrib.gis.db.backends.postgis',\n 'CONN_MAX_AGE': 1000,\n 'OPTIONS': {'MAX_CONNECTIONS': 120},\n }, ENGINE='django.db.backends.postgresql_psycopg2')\n #produces the following result\n {\n 'ENGINE': 'django.db.backends.postgresql_psycopg2',\n 'NAME': 'database',\n 'HOST': 'hostname',\n 'PORT': 5432,\n 'USER': 'username',\n 'PASSWORD': 'password',\n 'CONN_MAX_AGE': 1000,\n 'OPTIONS': {'TIMEOUT': '100','MAX_CONNECTIONS': 120},\n }\n\nThe order of precedence for dict arguments, parsed values and keyword arg overrides is:\n``Keyword arguments > Parsed values from connection URL > Defaults from passed dict objects.``\n\nURL schema\n----------\n\n+-------------+----------------------------------------------------------+--------------------------------------------------+\n| Engine | Django Backend | URL |\n+=============+==========================================================+==================================================+\n| PostgreSQL | ``django.db.backends.postgresql_psycopg2`` | ``postgres://USER:PASSWORD@HOST:PORT/NAME`` [1]_ |\n+-------------+----------------------------------------------------------+--------------------------------------------------+\n| PostGIS | ``django.contrib.gis.db.backends.postgis`` | ``postgis://USER:PASSWORD@HOST:PORT/NAME`` |\n+-------------+----------------------------------------------------------+--------------------------------------------------+\n| MySQL | ``django.db.backends.mysql`` | ``mysql://USER:PASSWORD@HOST:PORT/NAME`` |\n+-------------+----------------------------------------------------------+--------------------------------------------------+\n| MySQL (GIS) | ``django.contrib.gis.db.backends.mysql`` | ``mysqlgis://USER:PASSWORD@HOST:PORT/NAME`` |\n+-------------+----------------------------------------------------------+--------------------------------------------------+\n| SQLite | ``django.db.backends.sqlite3`` | ``sqlite:///PATH`` [2]_ |\n+-------------+----------------------------------------------------------+--------------------------------------------------+\n| Oracle | ``django.db.backends.oracle`` | ``oracle://USER:PASSWORD@HOST:PORT/NAME`` [3]_ |\n+-------------+----------------------------------------------------------+--------------------------------------------------+\n| Oracle (GIS)| ``django.contrib.gis.db.backends.oracle`` | ``oraclegis://USER:PASSWORD@HOST:PORT/NAME`` |\n+-------------+----------------------------------------------------------+--------------------------------------------------+\n| Redis | ``redis_cache.RedisCache`` | ``redis://USER:PASSWORD@HOST:PORT`` [4]_ |\n+-------------+----------------------------------------------------------+--------------------------------------------------+\n| Memcached | ``django.core.cache.backends.memcached.MemcachedCache`` | ``memcached://USER:PASSWORD@HOST:PORT`` |\n+-------------+----------------------------------------------------------+--------------------------------------------------+\n| Local memory| ``django.core.cache.backends.locmem.LocMemCache`` | ``locmem://HOST:PORT/PATH`` [5]_ |\n+-------------+----------------------------------------------------------+--------------------------------------------------+\n\n.. [1] With PostgreSQL, you can also use unix domain socket paths with\n `percent encoding `_:\n ``postgres://%2Fvar%2Flib%2Fpostgresql/dbname``.\n.. [2] SQLite connects to file based databases. The same URL format is used, omitting\n the hostname, and using the \"file\" portion as the filename of the database.\n This has the effect of four slashes being present for an absolute file path:\n ``sqlite:////full/path/to/your/database/file.sqlite``.\n.. [3] Note that when connecting to Oracle the URL isn't in the form you may know\n from using other Oracle tools (like SQLPlus) i.e. user and password are separated\n by ``:`` not by ``/``. Also you can omit ``HOST`` and ``PORT``\n and provide a full DSN string or TNS name in ``NAME`` part.\n.. [4] Requires ``django-redis-cache`` to be installed.\n.. [5] For local memory cache, HOST:PORT/PATH is used as unique identifier for the cache.\n If none is given, a random UUID is used as identifier.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/f0r4y312/django-connection-url", "keywords": null, "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "django-connection-url", "package_url": "https://pypi.org/project/django-connection-url/", "platform": "any", "project_url": "https://pypi.org/project/django-connection-url/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/f0r4y312/django-connection-url" }, "release_url": "https://pypi.org/project/django-connection-url/0.1.2/", "requires_dist": null, "requires_python": null, "summary": "Use connection URLs for Database/Cache settings in your Django project.", "version": "0.1.2" }, "last_serial": 2203158, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "4513d94b075864a6b57f8bb99e388f03", "sha256": "b0c8a0040e9a6873efca6ed5a20466fd02d730a8e9c21c5077190ecd25c4caf2" }, "downloads": -1, "filename": "django-connection-url-0.1.0.tar.gz", "has_sig": false, "md5_digest": "4513d94b075864a6b57f8bb99e388f03", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5402, "upload_time": "2016-06-15T21:01:15", "url": "https://files.pythonhosted.org/packages/91/43/891765fc2edc8cd3af4b66323957787ffb4d57dee156a9baaed94ff7d22b/django-connection-url-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "5af6c03ed062edcb65b5291ef201257a", "sha256": "67087f1fa4dba3627c03d40071e785247c84ad25956896f754198e6308cc53b2" }, "downloads": -1, "filename": "django-connection-url-0.1.1.tar.gz", "has_sig": false, "md5_digest": "5af6c03ed062edcb65b5291ef201257a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5388, "upload_time": "2016-06-15T21:26:29", "url": "https://files.pythonhosted.org/packages/e6/2f/2e3b7c54c6adf8647aed3d5fbaa4ec96e6b8454a44fb3ffd15849d29f161/django-connection-url-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "159d9c2fb2cd317d6bf1bb1c306e1897", "sha256": "457e0f21f75f1bb629aed3dd708bd81377447685f6ff7a5578780b458c8d50c4" }, "downloads": -1, "filename": "django-connection-url-0.1.2.tar.gz", "has_sig": false, "md5_digest": "159d9c2fb2cd317d6bf1bb1c306e1897", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5409, "upload_time": "2016-07-05T11:15:11", "url": "https://files.pythonhosted.org/packages/ca/a5/b3482d5db9473a64b7cce55ba14f17af4be6045b6630f8c06aaa8e4ddbeb/django-connection-url-0.1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "159d9c2fb2cd317d6bf1bb1c306e1897", "sha256": "457e0f21f75f1bb629aed3dd708bd81377447685f6ff7a5578780b458c8d50c4" }, "downloads": -1, "filename": "django-connection-url-0.1.2.tar.gz", "has_sig": false, "md5_digest": "159d9c2fb2cd317d6bf1bb1c306e1897", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5409, "upload_time": "2016-07-05T11:15:11", "url": "https://files.pythonhosted.org/packages/ca/a5/b3482d5db9473a64b7cce55ba14f17af4be6045b6630f8c06aaa8e4ddbeb/django-connection-url-0.1.2.tar.gz" } ] }