Anfängerproblem mit Werkzeug/SQLite...

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
nemomuk
User
Beiträge: 862
Registriert: Dienstag 6. November 2007, 21:49

Hallo,

da ich mal wieder Zeit habe, mich mit Python zu beschäftigen, arbeite ich mich gerade durch das Tutorial von Werkzeug durch.

Habe soweit alles auf meinem Debian Server installiert und alles angelegt. Nun bin ich soweit, dass ich mit der Werkzeug-Shell rumprobieren kann.
Mein Problem ist nur das hier:

Interactive Werkzeug Shell

Code: Alles auswählen

>>> from shorty.models import session, URL
>>> urls = [URL('http://example.org/'), URL('http://localhost:5000/')]
Traceback (most recent call last):
  File "<console>", line 1, in ?
  File "/usr/lib/python2.4/site-packages/SQLAlchemy-0.4.6-py2.4.egg/sqlalchemy/orm/attributes.py", line 1215, in init
    oldinit(instance, *args, **kwargs)
  File "/var/www/vhosts/icoost.com/subdomains/python/httpdocs/shorty/models.py", line 21, in __init__
    if not URL.query.get(uid):
  File "/usr/lib/python2.4/site-packages/SQLAlchemy-0.4.6-py2.4.egg/sqlalchemy/orm/query.py", line 269, in get
    return self._get(key, ident, **kwargs)
  File "/usr/lib/python2.4/site-packages/SQLAlchemy-0.4.6-py2.4.egg/sqlalchemy/orm/query.py", line 1049, in _get
    return q.all()[0]
  File "/usr/lib/python2.4/site-packages/SQLAlchemy-0.4.6-py2.4.egg/sqlalchemy/orm/query.py", line 876, in all
    return list(self)
  File "/usr/lib/python2.4/site-packages/SQLAlchemy-0.4.6-py2.4.egg/sqlalchemy/orm/query.py", line 936, in __iter__
    return self._execute_and_instances(context)
  File "/usr/lib/python2.4/site-packages/SQLAlchemy-0.4.6-py2.4.egg/sqlalchemy/orm/query.py", line 939, in _execute_and_instances
    result = self.session.execute(querycontext.statement, params=self._params, mapper=self.mapper, instance=self._refresh_instance)
  File "/usr/lib/python2.4/site-packages/SQLAlchemy-0.4.6-py2.4.egg/sqlalchemy/orm/session.py", line 625, in execute
    return self.__connection(engine, close_with_result=True).execute(clause, params or {})
  File "/usr/lib/python2.4/site-packages/SQLAlchemy-0.4.6-py2.4.egg/sqlalchemy/engine/base.py", line 844, in execute
    return Connection.executors[c](self, object, multiparams, params)
  File "/usr/lib/python2.4/site-packages/SQLAlchemy-0.4.6-py2.4.egg/sqlalchemy/engine/base.py", line 895, in execute_clauseelement
    return self._execute_compiled(elem.compile(dialect=self.dialect, column_keys=keys, inline=len(params) > 1), distilled_params=params)
  File "/usr/lib/python2.4/site-packages/SQLAlchemy-0.4.6-py2.4.egg/sqlalchemy/engine/base.py", line 907, in _execute_compiled
    self.__execute_raw(context)
  File "/usr/lib/python2.4/site-packages/SQLAlchemy-0.4.6-py2.4.egg/sqlalchemy/engine/base.py", line 916, in __execute_raw
    self._cursor_execute(context.cursor, context.statement, context.parameters[0], context=context)
  File "/usr/lib/python2.4/site-packages/SQLAlchemy-0.4.6-py2.4.egg/sqlalchemy/engine/base.py", line 960, in _cursor_execute
    self._handle_dbapi_exception(e, statement, parameters, cursor)
  File "/usr/lib/python2.4/site-packages/SQLAlchemy-0.4.6-py2.4.egg/sqlalchemy/engine/base.py", line 942, in _handle_dbapi_exception
    raise exceptions.DBAPIError.instance(statement, parameters, e, connection_invalidated=is_disconnect)
OperationalError: (OperationalError) no such table: urls u'SELECT urls.uid AS urls_uid, urls.target AS urls_target, urls.added AS urls_added, urls.public AS urls_public \nFROM urls \nWHERE urls.uid = ?' ['Nq8Qw']
Diese Fehlermeldung sagt mir, dass es keine Datenbank gibt,... Ich kenne mich allerdings nicht im geringsten mit SQLite aus...
ich habe schonmal den Befehl .databases ausgeführt und bekomme ein main und tmp zurück, was mir trotzdem nicht viel sagt...

Kann man das ganze auch mit mysql machen?
Wie müsste ich diesen Befehl dann umändern?

Code: Alles auswählen

return Shorty('sqlite:////tmp/shorty.db')
Danke!
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

Du musst nichts ändern, du musst nur, wie es später auch im Tutorial steht,

Code: Alles auswählen

python manage.py initdb
aufrufen.
nemomuk
User
Beiträge: 862
Registriert: Dienstag 6. November 2007, 21:49

OMG, vielen Dank!

:idea: :!: :?: -->Ich bedanke mich recht herzlich!
Antworten