J'ai effectué un processus de connexion / déconnexion en utilisant Python's Bottle.

Je voulais en faire un peu, alors j'ai cherché. La page suivante a été utilisée comme référence

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

Ça ressemble à ça. J'ai utilisé la plupart des scripts sur la page de référence. Merci.

!/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)

avec ça, ・ L'état initial passe à l'écran de connexion. ・ Après vous être connecté, enregistrez les informations de l'utilisateur dans le cookie, puis accédez-y par la suite. -Lorsque vous accédez / déconnectez, les informations du cookie sont supprimées et vous êtes déconnecté. ・ Le cookie devient invalide après l'heure spécifiée. J'ai pu le faire.

La structure des répertoires ressemble à ceci.

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

Vous devez mettre le fichier utilisé dans le modèle sous vues. Le modèle est expliqué en détail sur cette page, veuillez donc vous y référer ici. http://www.denzow.me/entry/2018/03/03/220942

Cela semble très pratique car il semble que le micro Python puisse également être utilisé dans Template.

Cette méthode suit-elle la pratique générale? ?? ?? C'est très difficile.

Recommended Posts

J'ai effectué un processus de connexion / déconnexion en utilisant Python's Bottle.
J'ai fait un Line-bot avec Python!
J'ai fait un texte Python
J'ai fait une loterie avec Python.
J'ai créé un démon avec Python
J'ai créé un lecteur de flux rapide en utilisant feedparser en Python
J'ai créé Chatbot en utilisant l'API LINE Messaging et Python
J'ai fait un programme de gestion de la paie en Python!
J'ai fait un compteur de caractères avec Python
Débutant: j'ai créé un lanceur à l'aide d'un dictionnaire
J'ai essayé de créer une application todo en utilisant une bouteille avec python
J'ai fait une carte hexadécimale avec Python
J'ai essayé de créer un outil d'échafaudage pour le framework Web Python Bottle
J'ai créé un chat-holdem de serveur de jeu de poker en utilisant websocket avec python
Après avoir étudié Python3, j'ai créé un Slackbot
J'ai fait un jeu rogue-like avec Python
J'ai créé Chatbot en utilisant l'API LINE Messaging et Python (2) ~ Server ~
J'ai fait un simple blackjack avec Python
J'ai créé un fichier de configuration avec Python
J'ai fait un simulateur de neurones avec Python
J'ai créé un exemple pour accéder à Salesforce en utilisant Python et Bottle
J'ai créé un fichier de dictionnaire python pour Neocomplete
J'ai fait une prévision météo de type bot avec Python.
J'ai créé une application graphique avec Python + PyQt5
J'ai essayé de créer un bloqueur de filles pourries sur Twitter avec Python ①
[Python] J'ai créé un téléchargeur Youtube avec Tkinter.
J'ai essayé de lire un fichier CSV en utilisant Python
J'ai créé un programme cryptographique César en Python.
J'ai fait un jeu de cueillette avec Python
Made Mattermost Bot avec Python (+ Flask)
Création du wrapper d'API Qiita Python "qiipy"
〇✕ J'ai fait un jeu
Démoniser un processus Python
J'ai fait un script pour enregistrer la fenêtre active en utilisant win32gui de Python
J'ai fait un jeu d'éclairage de sapin de Noël avec Python
J'ai créé une application de notification de nouvelles en ligne avec Python
J'ai créé une VM qui exécute OpenCV pour Python
J'ai créé un module Python pour traduire les commentaires
J'ai créé un environnement Python3 sur Ubuntu avec direnv.
J'ai essayé de faire LINE BOT avec Python et Heroku
[Python] J'ai créé un classificateur pour les iris [Machine learning]
[Python] J'ai essayé d'exécuter un serveur local en utilisant flask
J'ai essayé de dessiner une pseudo figure fractale en utilisant Python
J'ai créé une bibliothèque python qui fait rouler le rang
J'ai créé un jeu d'introduction au festival scolaire avec Ren'py
J'ai essayé d'utiliser Python (3) au lieu d'un calculateur de fonctions
J'ai fait un blackjack avec du python!
J'ai fait un robot discord
J'ai fait un blackjack avec Python.
J'ai créé wordcloud avec Python.
J'ai créé un package pour filtrer les séries chronologiques avec python
[VSCode] J'ai créé un extrait d'utilisateur pour Python print f-string
J'ai créé une application de livre simple avec python + Flask ~ Introduction ~
J'ai fait un modèle VGG16 en utilisant TensorFlow (en chemin)
J'ai fait un jeu de puzzle (comme) avec Tkinter of Python
J'ai fait un chronomètre en utilisant tkinter avec python
J'ai créé une application d'estimation de l'entraînement musculaire à l'aide du SDK Qore