Seite 2 von 2

Re: Immobilienportal

Verfasst: Mittwoch 8. Juli 2015, 13:03
von Sirius3
@meego: Was meinst Du mit Standardhoster? PostgreSQL ist nicht so resourcenhungrig, als dass es nicht auch auf einem kleinen Server laufen würde und wenn Dein Projekt eine gewisse Größe erreichen wird, wird Dir Dein Hoster um die Ecke sowieso nicht mehr reichen.

Re: Immobilienportal

Verfasst: Mittwoch 8. Juli 2015, 14:02
von meego
Naja, bei meinem (Metanet) habe ich im Admin gesehen, dass die eigentlich nur MySQL haben. Ich habe gestern mal Postgres gezogen und auf meinem Ubuntu installiert ("sudo apt-get install postgresql-9.4"). Allerdings konnte ich den Server nicht starten.

Die Anleitung ist leider ziemlich "spartanisch":
http://www.postgresql.org/docs/9.4/inte ... start.html

pgAdmin III habe ich auch einmal installiert.

Re: Immobilienportal

Verfasst: Donnerstag 9. Juli 2015, 06:27
von Käptn Haddock
Für den Anfang sollte es sqlite für dich tun. Da gibt es auch spatialite, womit du geographische Abfragen erstellen kannst.
Wenn du dann feststellst, das sqlite nichht mehr genügt, kannst du dich z.B. mit PostgreSQL befassen. Da ist der Umstieg recht einfach, M[y|aria]SQL hat das grössere Unterschiede, die man sich erarbeiten muß. Aber das wirst du bis dann selbst abschätzen können ;)

Gruß Uwe

Re: Immobilienportal

Verfasst: Donnerstag 9. Juli 2015, 07:33
von meego
Danke einem guten Tutorial weiss ich jetzt schon, wie ich dort Tabellen erstelle. Frage? Was wird mit dem gelobten bottle-sqlalchemy einfacher? Wie sehen dort die Befehle aus?

Code: Alles auswählen

import sqlite3
db = sqlite3.connect('picnic.db')
db.execute("CREATE TABLE picnic (id INTEGER PRIMARY KEY, item CHAR(100) NOT NULL, quant INTEGER NOT NULL)")
db.execute("INSERT INTO picnic (item,quant) VALUES ('bread', 4)")
db.execute("INSERT INTO picnic (item,quant) VALUES ('cheese', 2)")
db.execute("INSERT INTO picnic (item,quant) VALUES ('grapes', 30)")
db.execute("INSERT INTO picnic (item,quant) VALUES ('cake', 1)")
db.execute("INSERT INTO picnic (item,quant) VALUES ('soda', 4)")
db.commit()

Re: Immobilienportal

Verfasst: Donnerstag 9. Juli 2015, 08:12
von Sirius3
@meego: dank einem schlechten Tutorial weißt Du jetzt, wie man es nicht machen sollte!

Code: Alles auswählen

for item, quant in [('bread', 4), ('cheese', 2)]:
    db.execute("INSERT INTO picnic (item,quant) VALUES (?, ?)", (item, quant))

Re: Immobilienportal

Verfasst: Donnerstag 9. Juli 2015, 08:17
von BlackJack
Speziell an der Stelle kann man auch `executemany()` erwähnen. :-)

Re: Immobilienportal

Verfasst: Donnerstag 9. Juli 2015, 09:24
von meego
Codeoptimierung ist immer möglich. Aber wo finde ich die Definition zu executemany()?

Code: Alles auswählen

dir(sqlite3)
['Binary', 'Cache', 'Connection', 'Cursor', 'DataError', 'DatabaseError', 'Date', 'DateFromTicks', 'Error', 'IntegrityError', 'InterfaceError', 'InternalError', 'NotSupportedError', 'OperationalError', 'OptimizedUnicode', 'PARSE_COLNAMES', 'PARSE_DECLTYPES', 'PrepareProtocol', 'ProgrammingError', 'Row', 'SQLITE_ALTER_TABLE', 'SQLITE_ANALYZE', 'SQLITE_ATTACH', 'SQLITE_CREATE_INDEX', 'SQLITE_CREATE_TABLE', 'SQLITE_CREATE_TEMP_INDEX', 'SQLITE_CREATE_TEMP_TABLE', 'SQLITE_CREATE_TEMP_TRIGGER', 'SQLITE_CREATE_TEMP_VIEW', 'SQLITE_CREATE_TRIGGER', 'SQLITE_CREATE_VIEW', 'SQLITE_DELETE', 'SQLITE_DENY', 'SQLITE_DETACH', 'SQLITE_DROP_INDEX', 'SQLITE_DROP_TABLE', 'SQLITE_DROP_TEMP_INDEX', 'SQLITE_DROP_TEMP_TABLE', 'SQLITE_DROP_TEMP_TRIGGER', 'SQLITE_DROP_TEMP_VIEW', 'SQLITE_DROP_TRIGGER', 'SQLITE_DROP_VIEW', 'SQLITE_IGNORE', 'SQLITE_INSERT', 'SQLITE_OK', 'SQLITE_PRAGMA', 'SQLITE_READ', 'SQLITE_REINDEX', 'SQLITE_SELECT', 'SQLITE_TRANSACTION', 'SQLITE_UPDATE', 'Statement', 'Time', 'TimeFromTicks', 'Timestamp', 'TimestampFromTicks', 'Warning', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__', 'adapt', 'adapters', 'apilevel', 'collections', 'complete_statement', 'connect', 'converters', 'datetime', 'dbapi2', 'enable_callback_tracebacks', 'enable_shared_cache', 'paramstyle', 'register_adapter', 'register_converter', 'sqlite_version', 'sqlite_version_info', 'threadsafety', 'time', 'version', 'version_info', 'x']

Re: Immobilienportal

Verfasst: Donnerstag 9. Juli 2015, 10:01
von lackschuh
meego hat geschrieben:Codeoptimierung ist immer möglich. Aber wo finde ich die Definition zu executemany()?
In der Doku?

Re: Immobilienportal

Verfasst: Donnerstag 9. Juli 2015, 11:11
von meego
Danke. Also vermutlich im Cursorobjekt.