Use Django Models in any Python Web Framework
Project description
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
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
File details
Details for the file DJModels-0.0.6-py3-none-any.whl
.
File metadata
- Download URL: DJModels-0.0.6-py3-none-any.whl
- Upload date:
- Size: 3.4 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f5dbb1b747d728b5f6d5d7add80c4e6ba0534f09d778554d7888c09849276627 |
|
MD5 | e92aa261682ed923a85a1de8102d270f |
|
BLAKE2b-256 | 160f04aa7e5620c3a42c26c09a3bd3c53732955423f157ad844db7d7251fe6d0 |