Possible Duplicates:
Use only some parts of Django?
Using only the DB part of Django
I want to use the Django ORM as standalone. Despite an hour of searching Google, I'm still left with several questions:
models.py
and run syncdb
to have it automatically setup the tables and relationships or can I only use models from existing Django projects?PYTHONPATH
. If you're not calling existing models is this needed?I guess the easiest thing would be for someone to just post a basic template or walkthrough of the process, clarifying the organization of the files e.g.:
db/ __init__.py settings.py myScript.py orm/ __init__.py models.py
And the basic essentials:
# settings.py from django.conf import settings settings.configure( DATABASE_ENGINE = "postgresql_psycopg2", DATABASE_HOST = "localhost", DATABASE_NAME = "dbName", DATABASE_USER = "user", DATABASE_PASSWORD = "pass", DATABASE_PORT = "5432" ) # orm/models.py # ... # myScript.py # import models..
And whether you need to run something like: django-admin.py inspectdb
...
(Oh, I'm running Windows if that changes anything regarding command-line arguments.).
Django is one of the popular python frameworks; critiques have argued that it is a bloated framework. The truth of the matter is that it is very modularized, and each of the components () can be independently used.
The Django ORM is a very powerful tool, and one of the great attractions of Django. It makes writing simple queries trivial, and does a great job of abstracting away the database layer in your application. And sometimes, you shouldn't use it.
Django ORM vs SQLAlchemy Those of you from a Flask background will most likely have used SQLAlchemy for your Object Relational Mapper (ORM) needs. SQLAlchemy is an extremely powerful framework that gives you as much or as little control over your database as you need.
ORM stands for Object Relation Mapper. Django ORM is a powerful and elegant way to interact with the database. The Django ORM is an abstraction layer that allows us to play with the database. In the end, Django ORM will convert all operations into SQL statements.
Ah ok I figured it out and will post the solutions for anyone attempting to do the same thing.
This solution assumes that you want to create new models.
First create a new folder to store your files. We'll call it "standAlone". Within "standAlone", create the following files:
__init__.py myScript.py settings.py
Obviously "myScript.py" can be named whatever.
Next, create a directory for your models.
We'll name our model directory "myApp", but realize that this is a normal Django application within a project, as such, name it appropriately to the collection of models you are writing.
Within this directory create 2 files:
__init__.py models.py
Your going to need a copy of manage.py from an either an existing Django project or you can just grab a copy from your Django install path:
django\conf\project_template\manage.py
Copy the manage.py to your /standAlone directory. Ok so you should now have the following structure:
\standAlone __init__.py myScript.py manage.py settings.py \myApp __init__.py models.py
Add the following to your myScript.py file:
# settings.py from django.conf import settings settings.configure( DATABASE_ENGINE = "postgresql_psycopg2", DATABASE_NAME = "myDatabase", DATABASE_USER = "myUsername", DATABASE_PASSWORD = "myPassword", DATABASE_HOST = "localhost", DATABASE_PORT = "5432", INSTALLED_APPS = ("myApp") ) from django.db import models from myApp.models import *
and add this to your settings.py file:
DATABASE_ENGINE = "postgresql_psycopg2" DATABASE_NAME = "myDatabase" DATABASE_USER = "myUsername" DATABASE_PASSWORD = "myPassword" DATABASE_HOST = "localhost" DATABASE_PORT = "5432", INSTALLED_APPS = ("myApp")
and finally your myApp/models.py:
# myApp/models.py from django.db import models class MyModel(models.Model): field = models.CharField(max_length=255)
and that's it. Now to have Django manage your database, in command prompt navigate to our /standalone directory and run:
manage.py sql MyApp
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With