Flask Login mit SQLite

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
Hypec
User
Beiträge: 183
Registriert: Mittwoch 1. August 2018, 16:11

Hallo,
ich will ein Loginsystem für eine Flask seite programmieren. Ich habe bisher nur Sachen gefunden, wo die Flask-login lib in zusammenhang mit SQAlchemie Datenbanken genützt wird. Kann ich auch mit einer SQLite Datenbank irgendwie ein Db.modell erstellen wie bei SQAlchemie? Wenn nein kann ich trotzdem eine SQLite Datenbank nützen?
Benutzeravatar
sparrow
User
Beiträge: 4184
Registriert: Freitag 17. April 2009, 10:28

SQLAlchemy ist keine Datenbank sondern ein ORM. Es sorgt dafür, dass die Datenbank (die kann auch sqlite sein) (bzw. deren Tabellen und Objekte) sich in Python wie Python-Objekte darstellen.
Man möchte SQLAlchemy nehmen.
Hypec
User
Beiträge: 183
Registriert: Mittwoch 1. August 2018, 16:11

Ah und wie verbinde ich meine SQLite Datenbank mit SQLAlchemy? Gerne Links zu Tutorials.
Benutzeravatar
__blackjack__
User
Beiträge: 13068
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Sowohl Flask-SQLAlchemy als auch SQLAlchemy haben eine Dokumentation. Gleich das allererste Beispiel in der Flask-SQLAlchemy-Dokumentation im Kapitel „Quickstart“, Unterabschnitt „A Minimal Application“ verwendet SQLite als Datenbank.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Hypec
User
Beiträge: 183
Registriert: Mittwoch 1. August 2018, 16:11

Ja stimmt. Das wäre ein guter erster weg.

Ich will neben dem neuen Loginsystem auch eine vernünftige Struktur in meine Seite bringen, welche bisher nur aus einer großen .py Datei bestand wo eigentlich alles an python drin war. Ich habe jetzt folgende Struktur:
|
|--- Ordner
| |---- __init__.py
| |---- routes.py
|
|--- run.py

das Ganze läuft über gunicorn auf Uberspace 7.3. Vorher als ich nur die routes.py mit allem hatte lief das ganze Problemlos. Was mache ich jetzt falsch bzw. soll ich anders machen das es wieder funktioniert?

gunicorn.app.ini :

Code: Alles auswählen

[program:gunicorn]
command=/home/hypec/app/venv/bin/gunicorn run:app -c /home/hypec/app/app_config.py
directory=/home/hypec/app/app
user=hypec
autostart=true
autorestart=true
redirect_stderr=true
stderr_logfile=/home/hypec/logs/test.err.log
stdout_logfile=/home/hypec/logs/test.out.log
__init__.py :

Code: Alles auswählen

from flask import Flask

app = Flask(__name__)
app.secret_key = b'_5#y2L"F4Q8z\n\xec]/'

from greenhouse import routes
run.py :

Code: Alles auswählen

from greenhouse import app

if __name__ == '__main__': 
    app.run(host='0.0.0.0', port=8000, debug=True)
routes.py :
Flask app routen
Benutzeravatar
__blackjack__
User
Beiträge: 13068
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Hypec: Was für eine Fehlermeldung bekommst Du denn? Und ich sehe in der Verzeichnisstruktur nichts was `greenhouse` heisst. Und wo ist `app` definiert?
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Hypec
User
Beiträge: 183
Registriert: Mittwoch 1. August 2018, 16:11

Der Ordner heißt greenhouse da hätte ich mich besser ausdrücken müssen. Das mit dem Import app habe ich von einem Tutorial wo das ganze so funktioniert hat und dann auf die __init__.py zugegriffen hat. Die Fehlermeldung kommt gleich noch bin gerade nicht am PC.
Hypec
User
Beiträge: 183
Registriert: Mittwoch 1. August 2018, 16:11

So jetzt noch die Fehlermeldung. Ich update den supervisor mit den Befehlen:

Code: Alles auswählen

supervisorctl reread 

supervisorctl update

uberspace web backend set / --http --port 8000

uberspace web backend list
Auf den letzten Befehl kommt dann "/ http:8000 => NOT OK, no service" wenn ich die Domain im Internet aufrufe bekomme ich 404.
Antworten