Flask-Benutzerauthentifizierung – Vollständiger Ablauf und kostenlose Probe

Hallo Coder!

Dieser Artikel erklärt, wie man codiert Benutzerauthentifizierung in Flask verwenden Flask-Login Bibliothek u Bootstrap 5 für Seitengestaltung. Der präsentierte Quellcode ist recht einfach, auf die wesentlichen Teile konzentriert und am Ende wird auch ein voll brauchbares Beispiel bereitgestellt. Für Neueinsteiger, Flasche ist ein leichtgewichtiges Framework, das auf Python basiert und für jede Art von Projekt- und Web-Apps verwendet wird: einfache Websites, APIs, Microservices oder sogar komplexe E-Commerce-Lösungen.

Danke fürs Lesen! In diesem Tutorial behandelte Themen:

  • 1# – Die Gesamtansicht des Projekts
  • 2 # – Was ist Flask
  • 3# – Anmeldung, Abmeldung, Registrierungsrouten
  • 4 # – Voll Quellcode (veröffentlicht auf Github)

Am Ende sollten wir etwas Ähnliches codieren:

Flask-Benutzerauthentifizierung – Erfahren Sie, wie Sie ein Authentifizierungssystem in Flask codieren.


Projektübersicht

Für einfache Projekte und Präsentations-Websites ist ein Authentifizierungssystem möglicherweise nicht erforderlich, aber für andere Arten von Projekten mit größerer Komplexität verbessert die Möglichkeit, Benutzer von anderen zu unterscheiden, die Benutzerfreundlichkeit erheblich. Während dieses Tutorials verwendet der Authentifizierungsfluss eine einfache, intuitive Codebasisstruktur, Datenbankpersistenz über SQLite und Seitenstil, der von Bootstrap 5 unterstützt wird.

< PROJECT ROOT >
   |
   |-- app/
   |    |-- static/
   |    |    |-- <css, JS, images>    
   |    |
   |    |-- templates/
   |    |    |
   |    |    |-- index.html           
   |    |    |-- login.html           
   |    |    |-- register.html        
   |    |    
   |    |
   |  __init__.py                     
   |   config.py                      
   |   forms.py                       
   |   models.py                      
   |   views.py                       
   |
   |-- requirements.txt
   |-- run.py
   |
   |-- **************************************

Lassen Sie uns die wichtigsten Dateien erwähnen, die den Authentifizierungsfluss implementieren:

  • run.py – ist der Einstiegspunkt in unser Projekt
  • app Verzeichnis bündelt alle Dateien und Assets, die in unserem Projekt verwendet werden
  • app/config.py – isoliert die App-Konfiguration an einem einzigen Ort
  • app/forms.py – definiert SignIN-, SignUP-Formulare
  • app/models.py – definiert die Benutzertabelle
  • app/views.py – behandelt das App-Routing wie Login, Logout und Registrierung
  • app/__init__.py – bündelt die App

Flask ist ein beliebtes Python-Framework, das für ein schnelles und einfaches Projekt entwickelt wurde und auf komplexe Anwendungen skaliert werden kann. Flask kann zum Codieren von einfachen einseitigen Websites bis hin zu APIs und komplexen E-Commerce-Lösungen verwendet werden.


Was ist Flask


Der einfachste Weg, Flask zu installieren, ist die Verwendung von PIP, dem offiziellen Paketmanager, der mit Python geliefert wird.

$ pip install Flask

Sobald die Installation abgeschlossen ist, können wir einen Editor öffnen und unsere erste Flask-App mit ein paar Zeilen Code programmieren:

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello from Flask!'

In unserem einfachen Projekt die Authentifizierung Magie wird bereitgestellt von Flask-Login, wahrscheinlich die am häufigsten verwendete Authentifizierungsbibliothek für Flask-Projekte. Um zu verwenden Flask-Login In einem Flask-Projekt müssen wir einige Integrationsschritte befolgen:

Schritt 1 – Installieren Flask-Login mit PIP

$ pip install flask-login

Schritt 2 – Ein … kreieren LoginManager() Objekt

...
login_manager = LoginManager()
...

Schritt 3 – Bing der login_manager Einwand gegen die Flask APP

...
login_manager.init_app(app)
...

Schritt 4 – Definiere das user_loader Rückruf (erforderlich bei Flask-Login)

@login_manager.user_loader
def load_user(user_id):
    return User.get(user_id)

Schritt #5 – Bündeln Sie den gesamten oben genannten Code, wenn die Flask-App initialisiert wird:

...
app = Flask(__name__)                       

app.config.from_object('app.config.Config') 

db = SQLAlchemy  (app) 

lm = LoginManager(   )                      
lm.init_app(app)                            

Authentifizierungsrouten

Alle App-Routen werden von der bereitgestellt views.py Datei im App-Verzeichnis gespeichert.

/registrieren route – verwaltet das Onboarding der neuen Benutzer/registrieren route – verwaltet das Onboarding der neuen Benutzer

@app.route('/register', methods=['GET', 'POST'])
def register():
    
    
    form = RegisterForm(request.form)

    if request.method == 'GET': 

        return render_template( 'register.html', form=form, msg=msg )

    
    if form.validate_on_submit():

        
        username = request.form.get('username', '', type=str)
        password = request.form.get('password', '', type=str) 
        email    = request.form.get('email'   , '', type=str) 

        pw_hash = bc.generate_password_hash(password)

        user = Users(username, email, pw_hash)

        user.save()

        msg     = 'User created'     
        success = True

    else:
        msg = 'Input error'     

    return render_template( 'register.html', form=form, msg=msg, success=success ) 

/Anmeldung route – registrierte Benutzer authentifizieren

@app.route('/login', methods=['GET', 'POST'])
def login():
    
    
    form = LoginForm(request.form)

    
    msg = None

    
    if form.validate_on_submit():

        
        username = request.form.get('username', '', type=str)
        password = request.form.get('password', '', type=str) 

        
        user = Users.query.filter_by(user=username).first()

        if user:
            
            if bc.check_password_hash(user.password, password):
                login_user(user)
                return redirect(url_for('index'))
            else:
                msg = "Wrong password. Please try again."
        else:
            msg = "Unknown user"

    return render_template( 'login.html', form=form, msg=msg )

/Ausloggen route – Löschen Sie die dem Benutzer zugeordneten Sitzungsdaten


@app.route('/logout')
def logout():
    logout_user()
    return redirect(url_for('index'))

Mit dieser kurzen Präsentation im Hinterkopf können wir auf den gesamten Quellcode zugreifen, der in einem auf Github veröffentlichten Projekt gebündelt ist: Flask-Benutzerauthentifizierung.

Um das Projekt zu kompilieren und zu starten, sollten wir den Build-Anweisungen von folgen Liesmich Datei:

Schritt 1 – Quellen klonen/herunterladen

$ git clone 
$ cd flask-user-authentication

Schritt 2 – Erstellen Sie eine virtuelle Umgebung

$ 
$ virtualenv env
$ source env/bin/activate

Schritt 3 – Installieren Sie Abhängigkeiten

$ pip3 install -r requirements.txt

Schritt 4 – Umgebung einrichten

$ 
$ (Unix/Mac) export FLASK_APP=run.py
$ (Windows) set FLASK_APP=run.py
$ (Powershell) $env:FLASK_APP = ".\run.py"

Schritt #5 – Tabellen erstellen (SQLite-Persistenz)

$ 
$ flask shell
$ >>> from app import db
$ >>> db.create_all()

Schritt #6 – (optional) Aktivieren Sie die DEBUG-Umgebung (lokale Entwicklung)

$ 
$ 
$ 
$ 

Schritt Nr. 7 – Starten Sie das Projekt

$ 
$ 
$ 
$ flask run --host=0.0.0.0 --port=5000
$
$ 

Wenn alles gut geht, sollten wir sehen, dass das Projekt im Browser läuft und bereit ist, neue Benutzer zu registrieren und zu authentifizieren.

Flask-Benutzerauthentifizierung – Erfahren Sie, wie Sie ein Authentifizierungssystem in Flask codieren.


Danke fürs Lesen! Weitere Ressourcen finden Sie unter:


Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *