using only the django ORM (DB access model) and nothing else.
News123
news1234 at free.fr
Tue Jun 21 20:42:35 EDT 2011
On 06/22/2011 01:51 AM, News123 wrote:
> Hi,
>
> I have a small application running on a host without web server and
> without any need for django except its ORM accessing data bases without
> explicitely writing sql queries.)
>
> I assume there's many libraries (SQL Alchemy or others), which could do
> this job. and which migh have less overhead than django.
>
> As I am already implementing a web server application with django on
> another host I wanted to use the same syntax / API for my non web
> application.
>
> Now my question:
>
> What would be the minimal setup required to use django orms and nothing
> else.
>
>
> What entries could I remove from settings.py
> would I still have to add INSATLLED_APPS to the settings or could I just
> write one script
>
> defining only defining settings.DATABASES, and the typical contents of
> models.py of an application.
>
>
> Thanks in advance for some suggestions or ideas how you would approach
> writing a tiny non web application with django.db.models.Models
>
I made a very first brute force test:
settings.py: (only DATABASES is set)
=======================================
import os
MYDIR = os.path.abspath(os.path.dirname(__file__))
DATABASES = {
'default' : {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(MYDIR, "tiny.db"),
'HOST': '',
'USER': '',
'PASSWORD': '',
'PORT': '',
}
}
myapp.py
==========
#!/usr/bin/env python
import os
# just set the env prior to importing a django module
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
from django.db import models
print "yes this line is executed"
# this will fail :-(
class Mini(models.Model):
name = models.CharField(max_length=80)
###############################################
If running myapp.py I get following output:
yes this line is executed
Traceback (most recent call last):
File "./myapp.py", line 11, in <module>
class Mini(models.Model):
File
"/opt/my_python/lib/python2.6/site-packages/Django-1.3-py2.6.egg/django/db/models/base.py",
line 52, in __new__
kwargs = {"app_label": model_module.__name__.split('.')[-2]}
IndexError: list index out of range
(my_python)n1234 at mypc:~/minidjango$
So I need at least a little more to make my script work.
More information about the Python-list
mailing list