# Djangae
**NOTE: If you are using Django 1.11 / Python 2.7, please use the 1.x branch - master will not work for you**
[![Join the chat at https://gitter.im/potatolondon/djangae](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/potatolondon/djangae?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![build-status-image]][travis]
The best way to run Django on Google App Engine.
Djangae (djan-gee) is a Django app that allows you to run Django applications on Google App Engine, including (if you
want to) using Django's models with the App Engine Datastore as the underlying database.
:earth_africa: [Website](https://djangae.org) |
:octocat: [GitHub](https://github.com/potatolondon/djangae) |
:closed_book: [Docs](https://djangae.readthedocs.io/) |
:speech_balloon: [Gitter](https://gitter.im/potatolondon/djangae) |
:busts_in_silhouette: [Google Group](https://groups.google.com/forum/#!forum/djangae-users)
**Note: Djangae is under heavy development, stability is not guaranteed. See [1.0 release changes issue](https://github.com/potatolondon/djangae/issues/593) to follow progress on Djangae 1.0 release.**
## Features
* A WSGI middleware that provides a clean way via which your Django app is plugged into App Engine.
* A hook to allow App Engine's deferred tasks and mapreduce handlers to run through the same environment.
* The ability to use the Datastore as the database for Django's models. See **The Database Backend** for details.
You can also use App Engine's NDB, or you can use Google Cloud SQL (via the standard django MySQL backend) instead of
or along side the Datastore. Or use all 3!
* `djangae.contrib.gauth` which provides user models (both concrete and extendable abstract versions), an auth backend, and a middleware; which allow you to authenticate users using the App Engine's built-in Google Accounts authentication, and also allow you to use Django's permissions system on the Datastore (i.e. without being caught out by the Many-To-Many relationships).
* A `runserver` command which fires up the App Engine SDK to serve your app (while still using Django's code reloading).
* The ability to run management commands locally or on the remote App Engine Datastore.
* A `shell` command that correctly sets up the environment/database. (Note, we should support this set up for any
custom commands as well, see TODO.md).
## Documentation
https://djangae.readthedocs.io/
## Supported Django Versions
The intention is always to support the currently-supported versions of Django, although older versions may work. Currently
Django 1.8, 1.9, 1.10 and 1.11 are supported.
# Installation
See https://djangae.readthedocs.io/en/latest/installation/
# Contributing to Djangae
Djangae is actively developed and maintained, so if you're thinking of contributing to the codebase, here is how to get started.
## Get started with development
1. First off, head to [our Github page](https://github.com/potatolondon/djangae) and fork the repository to have your own copy of it.
2. Clone it locally to start setting up your development environment
3. Run all tests to make sure your local version is working: `./runtests.sh`. This will also install all necessary dependencies.
## Pick an issue & send a pull request
If you spotted a bug in Djangae that you want to fix, it's a good idea to start
off by [adding an issue](https://github.com/potatolondon/djangae/issues/new).
This will allow us to verify that your issue is valid, and suggest ideas for fixing it, so
no time is wasted for you.
For help with creating the pull request, check out [Github documentation](https://help.github.com/articles/creating-a-pull-request/).
## Code style
Code style should follow PEP-8 with a loose line length of 100 characters.
## Need help?
Reach out to us on [djangae-users](https://groups.google.com/forum/#!forum/djangae-users) mailing list.
## Pull request requirements
For pull request to be merged, following requirements should be met:
- Tests covering new or changed code are added or updated
- Relevant documentation should be updated or added
- Line item should be added to CHANGELOG.md, unless change is really irrelevant
# Running tests
For running the tests, you just need to run:
$ ./runtests.sh
On the first run this will download the App Engine SDK, pip install a bunch of stuff locally (into a folder, no virtualenv needed), download the Django tests and run them. Subsequent runs will just run the tests. If you want to run the tests on a specific Django version, you can switch the installed version by doing:
$ DJANGO_VERSION=1.11 ./runtests.sh --install_deps
Currently the default is 1.8. TravisCI runs on 1.8, 1.9, 1.10 and 1.11 currently.
If you want to run the tests on a specific App Engine SDK version, then you can switch the installed version by doing:
$ SDK_VERSION=1.9.35 ./runtests.sh --install_sdk
Note that this also re-installs the dependencies, so will reset the Django version to the default of 1.8.
You can run specific tests in the usual way by doing:
./runtests.sh some_app.SomeTestCase.some_test_method
[build-status-image]: https://secure.travis-ci.org/potatolondon/djangae.png?branch=master
[travis]: https://travis-ci.org/potatolondon/djangae?branch=master
Raw data
{
"_id": null,
"home_page": "https://github.com/potatolondon/djangae",
"name": "djangae",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "django,Google App Engine,GAE",
"author": "Potato London Ltd.",
"author_email": "mail@p.ota.to",
"download_url": "https://files.pythonhosted.org/packages/34/d6/9c18f2efb8880d1df09eaeaba92a517c3b4e86121220e117504868a24c6c/djangae-1.1.0.tar.gz",
"platform": null,
"description": "# Djangae\n\n**NOTE: If you are using Django 1.11 / Python 2.7, please use the 1.x branch - master will not work for you**\n\n[![Join the chat at https://gitter.im/potatolondon/djangae](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/potatolondon/djangae?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![build-status-image]][travis]\n\nThe best way to run Django on Google App Engine.\n\nDjangae (djan-gee) is a Django app that allows you to run Django applications on Google App Engine, including (if you\nwant to) using Django's models with the App Engine Datastore as the underlying database.\n\n:earth_africa: [Website](https://djangae.org) | \n:octocat: [GitHub](https://github.com/potatolondon/djangae) | \n:closed_book: [Docs](https://djangae.readthedocs.io/) | \n:speech_balloon: [Gitter](https://gitter.im/potatolondon/djangae) | \n:busts_in_silhouette: [Google Group](https://groups.google.com/forum/#!forum/djangae-users)\n\n**Note: Djangae is under heavy development, stability is not guaranteed. See [1.0 release changes issue](https://github.com/potatolondon/djangae/issues/593) to follow progress on Djangae 1.0 release.**\n\n## Features\n\n* A WSGI middleware that provides a clean way via which your Django app is plugged into App Engine.\n* A hook to allow App Engine's deferred tasks and mapreduce handlers to run through the same environment.\n* The ability to use the Datastore as the database for Django's models. See **The Database Backend** for details.\n You can also use App Engine's NDB, or you can use Google Cloud SQL (via the standard django MySQL backend) instead of\n or along side the Datastore. Or use all 3!\n* `djangae.contrib.gauth` which provides user models (both concrete and extendable abstract versions), an auth backend, and a middleware; which allow you to authenticate users using the App Engine's built-in Google Accounts authentication, and also allow you to use Django's permissions system on the Datastore (i.e. without being caught out by the Many-To-Many relationships).\n* A `runserver` command which fires up the App Engine SDK to serve your app (while still using Django's code reloading).\n* The ability to run management commands locally or on the remote App Engine Datastore.\n* A `shell` command that correctly sets up the environment/database. (Note, we should support this set up for any\n custom commands as well, see TODO.md).\n\n## Documentation\n\nhttps://djangae.readthedocs.io/\n\n## Supported Django Versions\n\nThe intention is always to support the currently-supported versions of Django, although older versions may work. Currently\nDjango 1.8, 1.9, 1.10 and 1.11 are supported.\n\n# Installation\n\nSee https://djangae.readthedocs.io/en/latest/installation/\n\n\n# Contributing to Djangae\n\nDjangae is actively developed and maintained, so if you're thinking of contributing to the codebase, here is how to get started.\n\n## Get started with development\n\n1. First off, head to [our Github page](https://github.com/potatolondon/djangae) and fork the repository to have your own copy of it.\n2. Clone it locally to start setting up your development environment\n3. Run all tests to make sure your local version is working: `./runtests.sh`. This will also install all necessary dependencies.\n\n## Pick an issue & send a pull request\n\nIf you spotted a bug in Djangae that you want to fix, it's a good idea to start\noff by [adding an issue](https://github.com/potatolondon/djangae/issues/new).\nThis will allow us to verify that your issue is valid, and suggest ideas for fixing it, so\nno time is wasted for you.\n\nFor help with creating the pull request, check out [Github documentation](https://help.github.com/articles/creating-a-pull-request/).\n\n## Code style\n\nCode style should follow PEP-8 with a loose line length of 100 characters.\n\n## Need help?\n\nReach out to us on [djangae-users](https://groups.google.com/forum/#!forum/djangae-users) mailing list.\n\n## Pull request requirements\n\nFor pull request to be merged, following requirements should be met:\n\n- Tests covering new or changed code are added or updated\n- Relevant documentation should be updated or added\n- Line item should be added to CHANGELOG.md, unless change is really irrelevant\n\n# Running tests\n\nFor running the tests, you just need to run:\n\n $ ./runtests.sh\n\nOn the first run this will download the App Engine SDK, pip install a bunch of stuff locally (into a folder, no virtualenv needed), download the Django tests and run them. Subsequent runs will just run the tests. If you want to run the tests on a specific Django version, you can switch the installed version by doing:\n\n $ DJANGO_VERSION=1.11 ./runtests.sh --install_deps\n\nCurrently the default is 1.8. TravisCI runs on 1.8, 1.9, 1.10 and 1.11 currently.\n\nIf you want to run the tests on a specific App Engine SDK version, then you can switch the installed version by doing:\n\n $ SDK_VERSION=1.9.35 ./runtests.sh --install_sdk\n\nNote that this also re-installs the dependencies, so will reset the Django version to the default of 1.8.\n\n\n\nYou can run specific tests in the usual way by doing:\n\n ./runtests.sh some_app.SomeTestCase.some_test_method\n\n\n[build-status-image]: https://secure.travis-ci.org/potatolondon/djangae.png?branch=master\n[travis]: https://travis-ci.org/potatolondon/djangae?branch=master\n\n\n",
"bugtrack_url": null,
"license": "",
"summary": "Django integration with Google App Engine",
"version": "1.1.0",
"project_urls": {
"Homepage": "https://github.com/potatolondon/djangae"
},
"split_keywords": [
"django",
"google app engine",
"gae"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "c61d918f661901dbc99f652ea9d5a8d215dc547b35a2ea9191dd168b80094373",
"md5": "2b897889eb399f12e5032f16c0596f04",
"sha256": "352754133f197e2390f74a57934032cc7a725101ad726edf953f8e8237374149"
},
"downloads": -1,
"filename": "djangae-1.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "2b897889eb399f12e5032f16c0596f04",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 619380,
"upload_time": "2022-10-24T15:17:29",
"upload_time_iso_8601": "2022-10-24T15:17:29.189288Z",
"url": "https://files.pythonhosted.org/packages/c6/1d/918f661901dbc99f652ea9d5a8d215dc547b35a2ea9191dd168b80094373/djangae-1.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "34d69c18f2efb8880d1df09eaeaba92a517c3b4e86121220e117504868a24c6c",
"md5": "96aac0690eab6669bc2211690ddd5884",
"sha256": "8f146728e3a8087e11eb88aa60bb17338e5e3998b66bd1fc936a72f4a492283e"
},
"downloads": -1,
"filename": "djangae-1.1.0.tar.gz",
"has_sig": false,
"md5_digest": "96aac0690eab6669bc2211690ddd5884",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 660948,
"upload_time": "2022-10-24T15:17:30",
"upload_time_iso_8601": "2022-10-24T15:17:30.748049Z",
"url": "https://files.pythonhosted.org/packages/34/d6/9c18f2efb8880d1df09eaeaba92a517c3b4e86121220e117504868a24c6c/djangae-1.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2022-10-24 15:17:30",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "potatolondon",
"github_project": "djangae",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "djangae"
}