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
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