2017-09-07 1 views
-1

Python-2.7, Web Framework : FlaskSÉGRÉGATION frontend et backend étroitement couplé

Mon frontend et backend sont présents sur le même serveur. J'utilise le framework web flask (API GET/POST et aussi les templates de rendu). Maintenant, je veux les séparer et les héberger dans deux machines différentes. Depuis la base de code est étroitement couplé et je suis principalement le rendu de fichiers HTML, Comment puis-je y parvenir?

Répondre

0

Si vous affichez du code HTML depuis votre serveur, vous pouvez toujours décentraliser votre interface et votre backend. Créez votre serveur dorsal avec une API REST ou similaire. Ensuite, pour votre serveur frontal, il suffit de faire des appels au serveur dorsal et de renvoyer les résultats rendus en html pour le client. De cette façon, vous n'avez pas besoin d'exposer votre serveur principal si vous ne le souhaitez pas.

est un exemple:

Backend

@app.route('/mydata/') 
def mydata: 
    # ... logic/service calls ... 
    return jsonify(result) 

Frontend

import requests 

@app.route('/') 
def index(): 
    api_result = requests.get(API_URL + '/mydata/') 
    # ... Map api_result to result ... 
    return render_template('index.html', result=result) 
+0

Vous voulez dire qu'au lieu de rendre, nous pouvons faire un appel Ajax à partir du fichier HTML lui-même à l'API REST backend et obtenir les données, est-ce exact? –

+0

Il ferait un appel de votre vue, puis passé dans votre modèle. Bien qu'il y aura toujours du code dans votre projet frontal, il n'aurait aucune logique de votre backend. –

+0

ok, je vais essayer de mettre en œuvre cela. Une question bien que séparant les deux (frontend et backend) va ajouter une surcharge supplémentaire quand il s'agit de pages Web droite? –