Lorsque vous utilisez Bottle en Python, c'est un problème d'écrire depuis le début. J'ai donc décidé d'écrire le contenu minimum nécessaire et d'écrire à partir de là pour pouvoir l'utiliser immédiatement.
main_app.py
#!/user/bin/env python
# -*- coding: utf-8 -*-
from bottle import route, run, template, request, static_file, url, get, post, response, error
import sys, codecs
sys.stdout = codecs.getwriter("utf-8")(sys.stdout)
@route("/")
def html_index():
return template("index")
@route("/static/<filepath:path>", name="static_file")
def static(filepath):
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="some-secret-key")
return template("index", name=username)
else:
return "<p>Failed !</p>"
def check_login(username, password):
if username == "admin" and password=="password":
return True
else:
return False
@error(404)
def error404(error):
return template("404")
run(host="localhost", port=8000, debug=True, reloader=True)
Écrivez la fonction de connexion elle-même depuis le début comme ceci. Seuls 404 en erreur sont écrits depuis le début et 500 erreurs sont ajoutées en fonction de leur utilisation.
myapp - bottle.py
main_app.py
/static
- /css
- /img
- /js
/views
- index.html
- 404.html
Je pense que vous devriez créer un répertoire comme celui-ci. À propos, le fichier de modèle de vues n'a pas besoin d'avoir une extension .tpl.
Recommended Posts