J'ai essayé d'exécuter un framework Web Python léger appelé Bottle sur un serveur local et lollipop (plan lollipop, ssh ne peut pas être utilisé ...). Lors de son exécution sur un serveur lollipop, il devait être modifié pour s'adapter à l'environnement.
Sur la page de titre, entrez le "nom", sélectionnez "nouilles préférées" et affichez les paramètres passés par la méthode GET sur la page de sortie des résultats.
Cette fois, le nom du projet est `` Bottle_study```.
bottle_study
- views/
| title.tpl # /Fichier modèle appelé par
| show.tpl # /Fichier modèle appelé par show
bottle.py #Corps de bouteille
index.py #répartiteur
Obtenez bottle.py
Créez index.py
Créez views / title.tpl
Créez des vues / show.tpl
Exécutez le serveur intégré
bottle.py
La bouteille elle-même, bouteille.py```, est obtenue par`
wget``` directement sous le répertoire du projet.
bottle.Comment obtenir py
$ mkdir bottle_study
$ pwd
(Dépend de votre environnement)/bottle_study
$ wget http://bottlepy.org/bottle.py
$ ls
bottle.py
index.py
#!/usr/local/bin/python
# -*- coding: utf-8 -*-
from bottle import route, run, template, request
# localhost:8080
@route('/')
def title():
# views/title.Appeler tpl
return template('title')
# localhost:8080/show
@route('/show', method='GET')
def men():
#Obtenir les paramètres GET(username, men)
username = request.query.username
men = request.query.men
#Partie contrôleur=======================================
if (username == ""):
username = "personne sans nom"
if men in {"ramen"}:
menname = "ramen"
elif men in {"soba"}:
menname = "Soba"
elif men in {"udon"}:
menname = "Udon"
else:
menname = "Error!!"
#Voir la section=============================================
# views/show.Appeler tpl
return template('show', name=username, men=menname)
#Exécuter le serveur intégré
run(host='localhost', port=8080, debug=True, reloader=True)
views/title.tpl
<!DOCTYPE html>
<html lang=ja>
<head>
<meta charset="UTF-8">
<title>Titre de page</title>
</head>
<body>
<h1>Titre de page</h1>
<form method="GET" action="/show">
<p>Nom est? :<br>
<input type="text" name="username"></p>
<p>Quelles sont vos nouilles préférées?</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="Envoyer">
</form>
</body>
</html>
views/show.tpl
<!DOCTYPE html>
<html lang=ja>
<head>
<meta charset="UTF-8">
<title>Page de sortie des résultats</title>
</head>
<body>
<h1>Page de sortie des résultats</h1>
<p>Bienvenue{{name}}San! !!</br>
La prochaine fois ensemble{{men}}Allons manger!<p>
<a href="/">return to HOME</a>
</p>
</body>
</html>
Vous pouvez l'exécuter sur le serveur intégré en faisant python index.py. Tapez `` localhost: 8080 '' dans votre navigateur pour ouvrir la page de titre.
$ pwd
(Dépend de votre environnement)/bottle_study
$ ls
bottle.py index.py view/
$ python index.py
Ensuite, exécutons-le avec le plan lollipop du serveur lollipop. À quoi ça ressemble
Donc, il y a beaucoup de restrictions, mais j'ai essayé de voir si une bouteille avec un seul fichier fonctionnerait.
La structure de fichiers du serveur lollipop. Cette fois, la page racine de l'exemple de version du serveur de location est "http: // (page du serveur lollipop) /bottle_study/index.cgi", j'ai donc placé "Bottle_study" dans le répertoire du projet sous la racine du document.
Racine du document
| .htaccess #Ajouté cette fois
- bottle_study
- views/
| title.tpl #Pas de changement
| show.tpl #Pas de changement(Retour au chemin HOME/ → /bottle_étude)
| bottle.py #Pas de changement
| index.cgi # index.py → index.cgi, correctif requis
1.index.cgi(index.py→) Les 4 points suivants ont été corrigés.
index.cgi(Seule la différence avec la version locale)
#!/usr/bin/python2.7
…
run(server='cgi')
2..htaccess
Lors de la transition de la page de titre à la page d'affichage des résultats, l'URL de la page d'affichage des résultats attendus est
http://(Page du serveur Lollipop)/bottle_study/index.cgi/show?username=yamjack&men=ramen
Cependant, si cela reste tel quel
http://(Page du serveur Lollipop)/show?username=yamjack&men=ramen
Et il semble revenir à la page de la racine du document, et la page est introuvable. Redirigez-le avec la racine du document `` .htaccess``` pour passer à la page attendue.
.htaccess
RewriteEngine on
RewriteRule ^show(.*)$ http://(Page du serveur Lollipop)/bottle_study/index.cgi/show$1
N'oubliez pas de mettre un saut de ligne uniquement dans la dernière ligne du .htaccess et de définir l'autorisation sur 704 pour les serveurs lollipop.
Maintenant, il se comporte de la même manière que localement. Ceux que je fabrique sont pour le moment pour une étude personnelle, alors je vais les essayer dans cet environnement jusqu'à ce que je puisse faire quelque chose que je veux montrer aux autres!
Recommended Posts