Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: [Django] ORM database mapping  (gelezen 1043 keer)

Offline Chriskras

  • Lid
[Django] ORM database mapping
« Gepost op: 2012/04/26, 23:43:47 »
Jongens,

Ben bezig met een project om ORM van Django te gebruiken om naar mijn SQL database te schrijven.
Nu ben ik gaan programmeren en heb de volgende code in elkaar:

manage.py
#!/usr/bin/env python
import os
import sys
sys.path.append('/home/test/')
sys.path.append('/home/test/standAlone')
sys.path.append('/home/test/standAlone/myApp')

if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "{{ project_name }}.settings")
from django.core.management import execute_from_command_line
execute_from_command_line(sys.argv)

Myscript:
# 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")
)

print"myscript"
from django.db import models
from myApp.models import *

setting.py:
DATABASE_ENGINE    = "mysql"
DATABASE_NAME      = "/user/local/mysql/"
DATABASE_USER      = "root"
DATABASE_PASSWORD  = "*****"
DATABASE_HOST      = "localhost"

map: MyApp bestand: models.py

# myApp/models.py
from django.db import models

class MyModel(models.Model):
     field = models.CharField(max_length=255)

Krijg nu de volgende errors:
(Roep hem zo aan de map, python manage.py sql MyApp)

Traceback (most recent call last):
  File "manage.py", line 12, in <module>
    execute_from_command_line(sys.argv)
  File "/home/test/django/core/management/__init__.py", line 443, in execute_from_command_line
    utility.execute()
  File "/home/test/django/core/management/__init__.py", line 382, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/test/django/core/management/__init__.py", line 261, in fetch_command
    klass = load_command_class(app_name, subcommand)
  File "/home/test/django/core/management/__init__.py", line 69, in load_command_class
    module = import_module('%s.management.commands.%s' % (app_name, name))
  File "/home/test/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/home/test/django/core/management/commands/sql.py", line 4, in <module>
    from django.core.management.sql import sql_create
  File "/home/test/django/core/management/sql.py", line 6, in <module>
    from django.db import models
  File "/home/test/django/db/__init__.py", line 11, in <module>
    if DEFAULT_DB_ALIAS not in settings.DATABASES:
  File "/home/test/django/utils/functional.py", line 184, in inner
    self._setup()
  File "/home/test/django/conf/__init__.py", line 42, in _setup
    self._wrapped = Settings(settings_module)
  File "/home/test/django/conf/__init__.py", line 95, in __init__
    raise ImportError("Could not import settings '%s' (Is it on sys.path?): %s" % (self.SETTINGS_MODULE, e))
ImportError: Could not import settings '{{ project_name }}.settings' (Is it on sys.path?): No module named {{ project_name }}.settings

Kan iemand me helpen wat ik fout doe?
**Ubuntu 12.04 LTS, MySql 5, Python 2.7, Django 1.4

EDIT:
Structuur:
mapnaam: standAlone
files:
*manage.py
*myScript.py
*settings.py
submap: MyApp
*models.py
« Laatst bewerkt op: 2012/04/26, 23:53:56 door Chriskras »

Offline Rachid

  • Lid
    • rachidbm
    • Mijn blog
Re: [Django] ORM database mapping
« Reactie #1 Gepost op: 2012/04/27, 01:53:33 »
Ben je ook blij dat Ubuntu zo toegankelijk en gratis is, en wil je graag net als ik iets terugdoen, kijk dan eens rond bij mwanzo, dé poort naar het bijdragen aan Ubuntu en haar gemeenschap!

Offline Chriskras

  • Lid
Re: [Django] ORM database mapping
« Reactie #2 Gepost op: 2012/04/27, 02:34:34 »
Was zelf ook gaan googlen en had die fout er uiteindelijk uit kunnen halen door het volgende te doen:

#!/usr/bin/env python
import os
import sys
sys.path.append("/home/test")

if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "standAlone.settings")
from django.core.management import execute_from_command_line
execute_from_command_line(sys.argv)

Nu ben ik me errors kwijt die hier boven staan, maar krijg nu een expection vanuit de Django module.
Deze is als volgt: 

Error: Import by filename is not supported.
Maar ik voor het volgende uit "python manage.py sql"

Kan hij nu sql niet vinden ofzo?!

« Laatst bewerkt op: 2012/04/27, 02:41:54 door Chriskras »

Offline Chriskras

  • Lid
Re: [Django] ORM database mapping
« Reactie #3 Gepost op: 2012/05/07, 00:30:20 »
Iemand nog een oplossing voor me probleem???
Kom er namelijk nog steeds niet uit...

Offline Ronnie

  • Lid
    • ronnie.vd.c
Re: [Django] ORM database mapping
« Reactie #4 Gepost op: 2012/05/07, 18:15:43 »
Bekijk deze link eens
http://www.b-list.org/weblog/2007/sep/22/standalone-django-scripts/

Vooral het commando setup_environ is belangrijk. Die gebruik ik altijd in mijn backend scripts
Ben je ook blij dat Ubuntu zo toegankelijk en gratis is, en wil je graag net als ik iets terugdoen, kijk dan eens rond bij mwanzo, dé poort naar het bijdragen aan Ubuntu en haar gemeenschap!

Documentatie Terminal