Skip to content

Latest commit

 

History

History
98 lines (61 loc) · 1.77 KB

README.MD

File metadata and controls

98 lines (61 loc) · 1.77 KB

DJ Models

Use the Django ORM in any Python web framework.

Install

pip3 install djmodels

Example App Configuration

Create an app directory for your models and settings (DB connection details).

mkdir -p project/base
touch project/base/{__init__.py,models.py}
touch settings.py

Add your database settings to the settings module. See Django's docs on this for more info.

SECRET_KEY = '<ACTUAL SECRET KEY>'
DATABASES = {
    'default': {
        'ENGINE': 'djmodels.db.backends.postgresql',
        'NAME': 'postgres',
        'USER': 'postgres',
        'PASSWORD': 'mysecretpassword',
        'HOST': '0.0.0.0',
        'PORT': '5432',
    }
}

INSTALLED_APPS = ['base']

Add a model to app/models.py

from djmodels.db import models

class Person(models.Model):
    name = models.CharField()
    age = models.PositiveIntegerField()

Export your settings module

export DJMODELS_SETTINGS_MODULE=app.settings

Create migrations

$ /manage.py makemigrations base
# Migrations for 'app':
#   - Create model Person 

Run Migrations

$ /manage.py makemigrations base
# Operations to perform:
#   Apply all migrations: base
#   Running migrations:
#       Applying base.0001_initial... OK

Import the model into any web framework and make queries. For example, Flask.

from flask import Flask
import djmodels

djmodels.setup()
from app.models import Person
app = Flask(__name__)

@app.route("/person/")
def get_random_person():
    person = Person.objects.order_by('?').first()
    return '{}'.format(person.name)

Example Apps

Gotchas

  • Make sure DJMODELS_SETTINGS_MODULE is set!

LICENSE

MIT