Ich habe einen Anmelde- / Abmeldevorgang mit Python's Bottle durchgeführt.

Ich wollte es ein wenig machen, also habe ich es nachgeschlagen. Die folgende Seite wurde als Referenz verwendet

https://qiita.com/Gen6/items/c153d562e757d88aa5c1 https://stackoverflow.com/questions/35588873/how-to-logout-in-python-bottle http://www.denzow.me/entry/2017/12/09/103828 https://qiita.com/yoskmr/items/8d35b6c7a15cfa275dfc

Code

Es sieht aus wie das. Ich habe die meisten Skripte auf der Referenzseite verwendet. Vielen Dank.

!/user/bin/env python
 -*- coding: utf-8 -*-

from bottle import route, run, template, request, static_file, url, get, post, response, error
from bottle import redirect
import sys, codecs
sys.stdout = codecs.getwriter("utf-8")(sys.stdout)

SECRET_KEY = 'some-secret-key'
LIFE_TIME = 120

@route("/")
def html_index():
    user_id = request.get_cookie('account', secret=SECRET_KEY)
    if user_id is None:
        redirect('/login')
    else:
        return template('index',url=url)


@route("/static/<filepath:path>", name="static_file")
def static(filepath):   
    user_id = request.get_cookie('account', secret=SECRET_KEY)
    if user_id is None:
        redirect('/login')
    else:
        return static_file(filepath, root="./static")


@get("/login")
def login():
    return """
        <form action="/login" method="post">
            Username: <input name="username" type="text" />
            Password: <input name="password" type="password" />
            <input value="Login" type="submit" />
        </form>
    """

@route("/login", method="POST")
def do_login():
    username = request.forms.get("username")
    password = request.forms.get("password")
    if check_login(username, password):
        response.set_cookie("account", username, secret=SECRET_KEY, path='/', max_age=LIFE_TIME )
        redirect('/')
    else:
        redirect('/login')

def check_login(username, password):
  if username == "admin" and password=="password":
    return True
  else:
    return False


@route('/logout')
@route('/logout', method="POST")
def logout():
    response.delete_cookie('account')
    redirect('/login')

@error(404)
def error404(error):
    return template("404")

run(host="localhost", port=8080, debug=True, reloader=True)

mit diesem, ・ Der Ausgangszustand wechselt zum Anmeldebildschirm. ・ Registrieren Sie nach dem Anmelden die Benutzerinformationen im Cookie und greifen Sie anschließend darauf zu. -Wenn Sie auf / abmelden, werden die Cookie-Informationen gelöscht und Sie werden abgemeldet. ・ Das Cookie wird nach der angegebenen Zeit ungültig. Ich konnte es schaffen.

Die Verzeichnisstruktur sieht so aus.

├─static
│  ├─css
│  ├─img
│  └─js
└─views

Sie sollten die in der Vorlage verwendete Datei unter Ansichten platzieren. Die Vorlage wird auf dieser Seite ausführlich erläutert. Bitte beziehen Sie sich hier darauf. http://www.denzow.me/entry/2018/03/03/220942

Es scheint sehr praktisch zu sein, da es scheint, dass Micro Python auch in Template verwendet werden kann.

Entspricht diese Methode der allgemeinen Praxis? ?? ?? Es ist sehr schwierig.

Recommended Posts

Ich habe einen Anmelde- / Abmeldevorgang mit Python's Bottle durchgeführt.
Ich habe einen Line-Bot mit Python gemacht!
Ich habe einen Python-Text gemacht
Ich habe mit Python eine Lotterie gemacht.
Ich habe mit Python einen Daemon erstellt
Ich habe einen schnellen Feed-Reader mit Feedparser in Python erstellt
Ich habe Chatbot mit LINE Messaging API und Python erstellt
Ich habe ein Pay-Management-Programm in Python erstellt!
Ich habe mit Python einen Zeichenzähler erstellt
Anfänger: Ich habe einen Launcher mit dem Wörterbuch erstellt
Ich habe versucht, eine ToDo-App mit einer Flasche mit Python zu erstellen
Ich habe mit Python eine Hex-Map erstellt
Ich habe versucht, ein Gerüstwerkzeug für Python Web Framework Bottle zu erstellen
Ich habe einen Pokerspielserver Chat-Holdem mit Websocket mit Python erstellt
Nachdem ich Python3 studiert hatte, machte ich einen Slackbot
Ich habe mit Python ein schurkenhaftes Spiel gemacht
Ich habe Chatbot mit der LINE Messaging API und Python (2) ~ Server ~ erstellt
Ich habe mit Python einen einfachen Blackjack gemacht
Ich habe mit Python eine Einstellungsdatei erstellt
Ich habe mit Python einen Neuronensimulator erstellt
Ich habe ein Beispiel für den Zugriff auf Salesforce mit Python und Bottle erstellt
Ich habe eine Python-Wörterbuchdatei für Neocomplete erstellt
Ich habe mit Python eine Bot-Wettervorhersage gemacht.
Ich habe eine GUI-App mit Python + PyQt5 erstellt
Ich habe versucht, mit Python einen Twitter-Blocker für faule Mädchen zu machen
[Python] Ich habe mit Tkinter einen Youtube Downloader erstellt.
Ich habe versucht, eine CSV-Datei mit Python zu lesen
Ich habe ein Caesar-Kryptografieprogramm in Python erstellt.
Ich habe mit Python ein Bin-Picking-Spiel gemacht
Mattermost Bot mit Python gemacht (+ Flask)
Python Qiita API Wrapper "qiipy" gemacht
〇✕ Ich habe ein Spiel gemacht
Dämonisiere einen Python-Prozess
Ich habe ein Skript erstellt, das das aktive Fenster mit win32gui von Python aufzeichnet
Ich habe mit Python ein Weihnachtsbaum-Beleuchtungsspiel gemacht
Ich habe mit Python eine App für die Benachrichtigung über Netznachrichten erstellt
Ich habe eine VM erstellt, auf der OpenCV für Python ausgeführt wird
Ich habe ein Python-Modul erstellt, um Kommentare zu übersetzen
Ich habe eine Python3-Umgebung unter Ubuntu mit direnv erstellt.
Ich habe versucht, LINE BOT mit Python und Heroku zu machen
[Python] Ich habe einen Klassifikator für Iris erstellt [Maschinelles Lernen]
[Python] Ich habe versucht, einen lokalen Server mit flask auszuführen
Ich habe versucht, mit Python eine Pseudofraktalfigur zu zeichnen
Ich habe eine Python-Bibliothek erstellt, die einen rollierenden Rang hat
Ich habe mit Ren’py ein Einführungsspiel für das Schulfest gemacht
Ich habe versucht, Python (3) anstelle eines Funktionsrechners zu verwenden
Ich habe einen Blackjack mit Python gemacht!
Ich habe einen Zwietrachtbot gemacht
Ich habe mit Python einen Blackjack gemacht.
Ich habe Wordcloud mit Python gemacht.
Ich habe ein Paket erstellt, um Zeitreihen mit Python zu filtern
[VSCode] Ich habe ein Benutzer-Snippet für Python-Druck-F-String erstellt
Ich habe eine einfache Buch-App mit Python + Flask ~ Introduction ~ erstellt
Ich habe ein VGG16-Modell mit TensorFlow gemacht (unterwegs)
Ich habe mit Tkinter of Python ein Puzzlespiel (wie) gemacht
Ich habe eine Stoppuhr mit tkinter mit Python gemacht
Ich habe mit dem Qore SDK eine App zum Schätzen des Muskeltrainings erstellt