Python-Anfänger haben versucht, Bottle zu verwenden, und es hat unerwartet leicht funktioniert

Einführung

Dies ist ein Memo für mich, die Details sind wie folgt.

Ausführungsumgebung

Was du machen willst

Was ich getan habe

Bewegen wir es vorerst.

Denken Sie nicht, dass es schwierig ist. Versuchen Sie es zuerst, bis Hello World im Browser angezeigt wird.

#pip install zum importieren
$ 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)

Führen Sie es mit PyCharm aus und öffnen Sie es in Ihrem Browser. http://localhost:8080/hello

image

Jetzt können Sie Hello World in Ihrem Browser sehen !! Amazing Bottle

Versuchen Sie es mit dynamischem Routing

# -*- 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)

Verwenden Sie die empfangenen Parameter

Durch Definieren eines Standards im Argument der auszuführenden Methode kann dieser auch dann angezeigt werden, wenn der Benutzer nicht übergeben wird. http://localhost:8080/hello/ image

http://localhost:8080/hello/masaibar image

Parameter einschränken

Es können einfache Wertebeschränkungen angegeben werden.

http://localhost:8080/date/april/29//dev/null image

Versuchen Sie GET, POST

Es scheint, dass es zwei Möglichkeiten gibt, Anmerkungen wie GET und POST zu schreiben. @get ('/ hoge') und @route ('/ hoge', method = 'GET') haben dasselbe Verhalten.

Der übergebene Wert wird unter Bezugnahme auf die folgenden Variablen empfangen.

Darüber hinaus können Sie verschiedene Daten wie Header und Anforderungshauptteil empfangen. Referenz

# -*- 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')

    #Benutzername, wenn in GET nichts übergeben wird,Geben Sie nichts in das Passwort ein
    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 image

http://localhost:8080/login?user=hoge&pass=fuga image

POST image

Versuchen Sie, die Fehlerseite anzuzeigen

# -*- 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)

Ich betrete absichtlich eine URL, die nicht existiert. http://localhost:8080/hellow image

abschließend

Um ehrlich zu sein, war ich überrascht, dass es sich leichter bewegte als ich erwartet hatte. Dieses Mal konzentrierte ich mich darauf, es zu verschieben, ohne an Vorlagen zu denken, aber als ich es nachschlug, hatte ich das Gefühl, dass einige Leute nur die Vorlagen-Engine verwendeten. (Ist Jinja2 beliebt?)

Referenz

Tutorial — Bottle 0.13-dev documentation : http://bottlepy.org/docs/dev/tutorial.html Einfache Einführung von 6 Arten von Python-Webframeworks - Mojilog: http://mojix.org/2013/04/13/python-six-wafs Beherrschen Sie das Request / Response-Objekt von Bottle - Qiita: http://qiita.com/tomotaka_ito/items/62fc4d58d1be7867a158 Der Vergleich von None in Python ist nicht das == - ist Hallo Hallo Monmon! : http://monmon.hateblo.jp/entry/20110214/1297710749

Recommended Posts

Python-Anfänger haben versucht, Bottle zu verwenden, und es hat unerwartet leicht funktioniert
Ich habe versucht, ein Projekt mit Python on Docker mit PyCharm zu erstellen, aber es hat mit Docker Compose funktioniert
Ich habe versucht, eine ToDo-App mit einer Flasche mit Python zu erstellen
Ich habe ein Beispiel für den Zugriff auf Salesforce mit Python und Bottle erstellt
Ich habe versucht, eine CSV-Datei mit Python zu lesen
Ein Python-Anfänger hat versucht, bei einem IT-Unternehmen zu praktizieren [Tag 2 Chatbot-Umfrage]
Python-Anfänger versuchte, bei einem IT-Unternehmen zu praktizieren [Tag 1 Entwicklungsprozess]
Als ich versuchte, mit Python eine virtuelle Umgebung zu erstellen, funktionierte dies nicht
Eine Geschichte, die praktisch war, als ich versuchte, das Python-IP-Adressmodul zu verwenden
Ich habe einen Anmelde- / Abmeldevorgang mit Python's Bottle durchgeführt.
[Anfänger] [Python / Django] Ein junger Webingenieur hat ein Django-Tutorial ausprobiert - Teil 7-
[Anfänger] [Python / Django] Ein junger Webingenieur hat ein Django-Tutorial ausprobiert - Teil 1-
[Anfänger] [Python / Django] Ein junger Webingenieur hat ein Django-Tutorial ausprobiert - Teil 2-
Ein Python-Anfänger versuchte, bei einem IT-Unternehmen zu praktizieren [Tag 3 in die Wolken ...]
[Anfänger] [Python / Django] Ein junger Webingenieur hat ein Django-Tutorial ausprobiert - Teil 0-
[Anfänger] [Python / Django] Ein junger Webingenieur hat ein Django-Tutorial ausprobiert - Teil 5-
[Anfänger] [Python / Django] Ein junger Webingenieur hat ein Django-Tutorial ausprobiert - Teil 6-
[Python] Ich habe versucht, einen lokalen Server mit flask auszuführen
Ich habe versucht, mit Python eine Pseudofraktalfigur zu zeichnen
[Anfänger] [Python / Django] Ein junger Webingenieur hat ein Django-Tutorial ausprobiert - Teil 3-
Ich habe versucht, Python (3) anstelle eines Funktionsrechners zu verwenden
Als ich den AtCoder Beginner Contest ausprobierte, war es ein schreckliches Ergebnis, also schaue ich zurück
Ein Hinweis beim Erstellen eines gerichteten Diagramms mit Graphviz in Python
Skripte, die bei der Verwendung von Bottle in Python verwendet werden können
Als ich versuchte, mithilfe von Anforderungen in Python zu kratzen, war ich süchtig nach SSLError, also einem Workaround-Memo
Rubyist hat versucht, eine einfache API mit Python + Flasche + MySQL zu erstellen
Ich habe versucht, mit Python einen regulären Ausdruck für "Betrag" zu erstellen
Ich habe versucht, mit Python einen regulären Ausdruck von "Zeit" zu erstellen
[Python] Erscheint bei Verwendung von iterdir () usw. [Errno 20] Kein Verzeichnis: '*** / .DS_Store'
Ich habe versucht, mit Python einen regulären Ausdruck von "Datum" zu erstellen
Hinweise zur Verwendung der Tab-Vervollständigung beim interaktiven Ausführen von Python unter Windows
Fehlerprotokoll-Ausgabemethode bei Verwendung des Bottle-Frameworks mit GAE / Python
Versuchen Sie, wenn Visual Studio Code ein Python-Modul nicht laden kann
Ein Memorandum bei der Verwendung von schöner Suppe
Vorsichtsmaßnahmen bei der Verwendung von Pit mit Python
Ich habe einen Line-Bot mit Python gemacht!
Erstellen Sie mit tkinter eine Python-GUI
Zeichnen einer Silbersteinkurve mit Python
Ich habe versucht, Thonny (Python / IDE) zu verwenden.
Python-Anfänger versucht 100 Sprachverarbeitung klopfen 2015 (05 ~ 09)
Vorsichtsmaßnahmen beim Erstellen eines Python-Generators
Vorsichtsmaßnahmen bei der Verwendung von Phantomjs aus Python
Bei Verwendung von MeCab mit virtualenv python
Vorsichtsmaßnahmen bei Verwendung von sechs mit Python 2.5
Bei Verwendung regulärer Ausdrücke in Python
Beim Schreiben eines Programms in Python
Python-Anfänger versucht 100 Sprachverarbeitung klopfen 2015 (00 ~ 04)
Ich habe in Python einen Discord-Bot erstellt, der übersetzt, wenn er reagiert
Ich habe versucht, eval (a, b) für Fibonacci zu verwenden, aber es war nicht schnell
Ein nützlicher Hinweis, wenn Sie Python nach langer Zeit verwenden
Starten Sie einen Webserver mit Bottle and Flask (ich habe auch versucht, Apache zu verwenden)
Wenn ich mit Chainer zurückkehre, passt es ein wenig