Ceci est un mémo pour moi, les détails sont les suivants.
Ne pensez pas que c'est difficile, essayez d'abord jusqu'à ce que Hello World s'affiche dans le navigateur.
#pip installer pour importer
$ pip install bottle
# -*- coding:utf-8 -*-
from bottle import route, run
@route('/hello')
def hello():
return "Hello World!"
run(host='localhost', port=8080, debug=True)
Exécutez-le avec PyCharm et ouvrez-le dans votre navigateur. http://localhost:8080/hello
Vous pouvez maintenant voir Hello World dans votre navigateur !! Amazing Bottle
# -*- coding:utf-8 -*-
from bottle import route, run
@route('/hello/')
@route('/hello/<user>')
def hello(user="taro"):
return "Hello {user}".format(user=user)
@route('/date/<month:re:[a-z]+>/<day:int>/<path:path>')
def date(month, day, path):
return "{month}/{day} {path}".format(month=month, day=day, path=path)
run(host='localhost', port=8080, debug=True)
En définissant une valeur par défaut dans l'argument de la méthode à exécuter, elle peut être affichée même si l'utilisateur n'est pas passé. http://localhost:8080/hello/
http://localhost:8080/hello/masaibar
Des contraintes de valeur simples peuvent être données.
http://localhost:8080/date/april/29//dev/null
Il semble qu'il existe deux façons d'écrire des annotations telles que GET et POST. @get ('/ hoge') et @route ('/ hoge', method = 'GET') ont le même comportement.
La valeur transmise est reçue en se référant aux variables suivantes.
De plus, vous pouvez recevoir diverses données telles que les en-têtes et le corps de la requête. Référence
# -*- coding:utf-8 -*-
from bottle import route, run
from bottle import get, post, request
@route('/login', method='GET') # or @get('/login')
def login():
username = request.query.get('user')
password = request.query.get('pass')
#Nom d'utilisateur lorsque rien n'est passé dans GET,Ne mettez rien dans le mot de passe
username = "" if username is None else username
password = "" if password is None else password
return '''
<form action="/login" method="post">
Username: <input name="username" type="text" value="{username}"/>
Password: <input name="password" type="password" value="{password}"/>
<input value="Login" type="submit" />
</form>
'''.format(username=username, password=password)
@route('/login', method='POST') # or @post('/post')
def do_login():
username = request.forms.get('username')
password = request.forms.get('password')
return "{username} {password}".format(username=username, password=password)
run(host='localhost', port=8080, debug=True)
GET http://localhost:8080/login
http://localhost:8080/login?user=hoge&pass=fuga
POST
# -*- coding:utf-8 -*-
from bottle import route, run
from bottle import error
@route('/hello')
def hello():
return "Hello World!"
@error(404)
def error404(error):
return "Nothing here sorry {error}".format(error=error)
run(host='localhost', port=8080, debug=True)
Je marche délibérément sur une URL qui n'existe pas. http://localhost:8080/hellow
Pour être honnête, j'ai été surpris que ça bouge plus facilement que prévu. Cette fois, je me suis concentré sur le déplacement sans penser aux modèles, mais quand je l'ai recherché, j'ai senti que pas mal de gens n'utilisaient que le moteur de modèles. (Est-ce que Jinja2 est populaire?)
Tutorial — Bottle 0.13-dev documentation : http://bottlepy.org/docs/dev/tutorial.html Introduction facile de 6 types de frameworks Web Python - Mojilog: http://mojix.org/2013/04/13/python-six-wafs Maîtrisez l'objet Requête / Réponse de Bottle --Qiita: http://qiita.com/tomotaka_ito/items/62fc4d58d1be7867a158 La comparaison de None en Python utilise n'est pas le == - is Hello Hello monmon! : http://monmon.hateblo.jp/entry/20110214/1297710749