Versuchen Sie, die Python-Webframework-Flasche auf einem Lollipop-Server auszuführen (Lollipo-Plan).

Ich habe versucht, ein leichtes Python-Webframework namens Bottle auf einem lokalen Server und einem Lollipop-Server auszuführen (Lollipop-Plan, SSH kann nicht verwendet werden ...). Wenn es auf einem Lollipop-Server ausgeführt wird, muss es an die Umgebung angepasst werden.

Stichprobe

Geben Sie auf der Titelseite den "Namen" ein, wählen Sie "Lieblingsnudeln" aus und zeigen Sie die von der GET-Methode übergebenen Parameter auf der Ergebnisausgabeseite an. タイトルページ.png 結果出力のページ.png

Erster Einheimischer

Dateiorganisation

Diesmal lautet der Projektname `` `Flasche_Studie```.

bottle_study
- views/
  |  title.tpl   # /Vorlagendatei aufgerufen von
  |  show.tpl    # /Vorlagendatei von show aufgerufen
  bottle.py      #Flaschenkörper
  index.py       #Dispatcher

Verfahren

  1. Holen Sie sich Flasche.py

  2. Erstellen Sie index.py

  3. Erstellen Sie views / title.tpl

  4. Erstellen Sie views / show.tpl

  5. Führen Sie den integrierten Server aus

  6. bottle.py Die Flasche selbst, Flasche.py```, wird von wget``` direkt unter dem Projektverzeichnis erhalten.

bottle.Wie man py bekommt


$ mkdir bottle_study
$ pwd
(Kommt auf deine Umgebung an)/bottle_study
$ wget http://bottlepy.org/bottle.py
$ ls
bottle.py
  1. index.py Diesmal habe ich die gesamte Verarbeitung in index.py geschrieben. Unter dem Strich führen wir den eingebauten Server aus.

index.py


#!/usr/local/bin/python
# -*- coding: utf-8 -*-

from bottle import route, run, template, request


# localhost:8080
@route('/')
def title():
    # views/title.Rufen Sie tpl an
    return template('title')


# localhost:8080/show
@route('/show', method='GET')
def men():
    #Holen Sie sich GET-Parameter(username, men)
    username = request.query.username
    men = request.query.men

    #Controller-Teil=======================================
    if (username == ""):
        username = "namenlose Person"

    if men in {"ramen"}:
        menname = "Ramen"
    elif men in {"soba"}:
        menname = "Soba"
    elif men in {"udon"}:
        menname = "Udon"
    else:
        menname = "Error!!"

    #Abschnitt anzeigen=============================================
    # views/show.Rufen Sie tpl an
    return template('show', name=username, men=menname)


#Führen Sie den integrierten Server aus
run(host='localhost', port=8080, debug=True, reloader=True)
  1. views/title.tpl Dies ist die Titelseite. Standardmäßig liest Bottle Dateien im Ansichtsverzeichnis.

views/title.tpl


<!DOCTYPE html>
<html lang=ja>
  <head>
    <meta charset="UTF-8">
    <title>Titelblatt</title>
  </head>

  <body>
    <h1>Titelblatt</h1>

    <form method="GET" action="/show">
    <p>Name ist? ::<br>
    <input type="text" name="username"></p>

    <p>Was sind deine Lieblingsnudeln?</p>
    <form>
    <select name="men">
      <option value="ramen">Ramen</option>
      <option value="soba">Soba</option>
      <option value="udon">Udon</option>
    </select>
    <input type="submit" value="Senden">
    </form>
  </body>

</html>
  1. views/show.tpl Diese Seite empfängt Parameter von der Titelseite und gibt die Ergebnisse aus. Die Parameter der GET-Methode werden als Variablen empfangen. (Name und Männer)

views/show.tpl


<!DOCTYPE html>
<html lang=ja>
  <head>
    <meta charset="UTF-8">
    <title>Ergebnisausgabeseite</title>
  </head>

  <body>
    <h1>Ergebnisausgabeseite</h1>
    <p>Herzlich willkommen{{name}}San! !!</br>
Nächstes Mal zusammen{{men}}Lass uns essen gehen!<p>
    <a href="/">return to HOME</a>
    </p>
  </body>

</html>

5. Führen Sie den integrierten Server aus

Sie können es auf dem integrierten Server ausführen, indem Sie python index.py ausführen. Geben Sie `` `localhost: 8080``` in Ihren Browser ein, um die Titelseite zu öffnen.

$ pwd
(Kommt auf deine Umgebung an)/bottle_study
$ ls
bottle.py	index.py	view/
$ python index.py

Führen Sie als Nächstes den Mietserver aus

Als nächstes führen wir es mit dem Lollipop-Plan des Lollipop-Servers aus. Wie ist das?

Es gibt also viele Einschränkungen, aber ich habe versucht zu sehen, ob eine Flasche mit nur einer Datei funktionieren würde.

Dateiorganisation

Die Dateistruktur des Lollipop-Servers. Dieses Mal lautet die Stammseite des Versionsbeispiels für den Mietserver "http: // (Lollipop-Serverseite) /bottle_study/index.cgi", daher habe ich "Flasche_Studie" im Projektverzeichnis unter dem Dokumentstamm platziert.

Dokument Root
| .htaccess   #Diesmal hinzugefügt
- bottle_study
  - views/
    | title.tpl   #Keine Änderung
    | show.tpl    #Keine Änderung(Kehren Sie zum HOME-Pfad zurück/ → /bottle_Studie)
  | bottle.py      #Keine Änderung
  | index.cgi      # index.py → index.CGI, Fix erforderlich

Fixpunkte

  1. index.py (Python-Ausführungspfad, Servertypspezifikation, Erweiterung cgi, Berechtigung 700)
  2. Leiten Sie mit .htaccess den Pfad zurück zum Stammverzeichnis zu `` `stock_study / index.cgi / show``` um

1.index.cgi(index.py→) Die folgenden 4 Punkte wurden behoben.

index.cgi(Nur der Unterschied zur lokalen Version)


#!/usr/bin/python2.7

…

run(server='cgi')

2..htaccess

Beim Übergang von der Titelseite zur Ergebnisanzeigeseite lautet die URL der erwarteten Ergebnisanzeigeseite

http://(Lollipop Server Seite)/bottle_study/index.cgi/show?username=yamjack&men=ramen

Wenn dies jedoch so bleibt, wie es ist

http://(Lollipop Server Seite)/show?username=yamjack&men=ramen

Und es scheint zur Seite des Dokumentstamms zurückzukehren, und die Seite kann nicht gefunden werden. Leiten Sie dies mit dem Dokumentstamm `` `.htaccess``` um, um zur erwarteten Seite zu gelangen.

.htaccess


RewriteEngine on
RewriteRule ^show(.*)$ http://(Lollipop Server Seite)/bottle_study/index.cgi/show$1

Vergessen Sie nicht, einen Zeilenumbruch nur in die letzte Zeile des .htaccess einzufügen und die Berechtigung für Lollipop-Server auf 704 zu setzen.

Jetzt verhält es sich genauso wie vor Ort. Die, die ich mache, sind im Moment für das persönliche Lernen, also werde ich sie in dieser Umgebung ausprobieren, bis ich etwas machen kann, das ich anderen zeigen möchte!

Recommended Posts

Versuchen Sie, die Python-Webframework-Flasche auf einem Lollipop-Server auszuführen (Lollipo-Plan).
Lassen Sie uns einen WEB-Server mit Chromebook einrichten
[Teil 2] Erstellen wir einen Webserver mit EC2 Linux
[Einführung in AWS] Memorandum zum Erstellen eines Webservers auf AWS
Ich habe versucht, ein Gerüstwerkzeug für Python Web Framework Bottle zu erstellen