Forum

You are not logged in.

#1 26-11-2018 11:44:09

guillaumetravort
Membre
Registered: 26-11-2018
Posts: 2

Python UWSGI

Bonjour,

J'ai fait l'application flask la plus bete du monde, dans un fichier test.py

test.py

from flask import Flask
application = Flask(__name__)

@application .route("/")
def hello():
    return "Hello World!"

Cette application retourne simplement "Hello World!"

Lorsque je crée un site Python WSGI dans l'administration, avec cette configuration, ca fonctionne correctement lorsque je pointe sur http://identifiant.alwaysdata.net

adresses : identifiant.alwaysdata.net
type : Python WSGI
chemin de l'application : /path_to_myapp/test.py
répertoire de travail : /path_to_myapp/
répertoire du virtualenv : /path_to_my_venv/

Mais je veux joindre ce site à une autre adresse, ca ne fonctionne pas sur http://identifiant.alwaysdata.net/site_test

adresses : identifiant.alwaysdata.net/site_test
type : Python WSGI
chemin de l'application : /path_to_myapp/test.py
répertoire de travail : /path_to_myapp/
répertoire du virtualenv : /path_to_my_venv/

J'ai l'erreur suivante :

Not Found
The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.

Dans cette configuration, l'adresse "root" fonctionne, mais pas l'autre... J'ai du mal à comprendre

adresses : identifiant.alwaysdata.net et identifiant.alwaysdata.net/site_test
type : Python WSGI
chemin de l'application : /path_to_myapp/test.py
répertoire de travail : /path_to_myapp/
répertoire du virtualenv : /path_to_my_venv/

J'ai une petite question toute bete mais je coince. Je dois louper un truc dans l'administration alwaysdata ? (ou dans Flask ?, je me dis qu'il y a une erreur du genre url root path ou un truc du genre ?? J'avoue que je bloque.
Les logs du site sont vides, donc pour le debug je sèche.

Des idées ?

PS : Merci AlwaysData pour ce que vous faites, c'est vraiment du très bon travail !

Offline

#2 26-11-2018 12:21:26

@m4dz
Staff
From: Paris
Registered: 15-01-2018
Posts: 5
Website

Re: Python UWSGI

Bonjour,

guillaumetravort wrote:

Mais je veux joindre ce site à une autre adresse, ca ne fonctionne pas sur http://identifiant.alwaysdata.net/site_test

effectivement, si vous hébergez le site sur un sous-répertoire dans l'URL, les routes que Flask va s'attendre à recevoir sont de la forme

<path>/<url>

. Donc ici, les routes Flask devraient être :

@application .route("/site_test/")
def hello():

Le problème, c'est que tout ça ne rend pas le code très portable, puisque fortement dépendant de l'URL neutral

Pour garder le code propre, il vous suffit donc d'aller dans la section "avancé" des paramètres de votre site et de cocher la case "exclure le chemin". Flask va recevoir les URL sans le sous-répertoire racine, et votre code fonctionnera dans tous les cas smile

Offline

#3 26-11-2018 13:43:50

guillaumetravort
Membre
Registered: 26-11-2018
Posts: 2

Re: Python UWSGI

Mais, vraiment .... bravo
La réponse est rapide et parfaite smile

Je viens de découvrir cet onglet, qui aurait pu me faire gagner ... 8h de recherches !

Je compte écrire un petit tutorial chez vous pour déployer une application Flask, je le posterai sur le forum pour voir si les gens sont d'accord. Ce genre de hack peut-être très utile !

Merci encore

Offline

#4 26-11-2018 16:48:51

@m4dz
Staff
From: Paris
Registered: 15-01-2018
Posts: 5
Website

Re: Python UWSGI

Avec plaisir smile

Concernant le tuto, c'est toujours une bonne idée de fournir ce genre de ressources à la communauté, donc c'est avec plaisir.

Cela dit, nous allons ajouter très rapidement Flask à la liste des applications déployables en 1-click via l'applithèque. Peut-être qu'il y aura de bonnes idées à prendre de chaque côté wink.

Bon courage pour la rédaction du tuto !

Offline

Board footer

Powered by FluxBB