Bonjour Python Je suis angular et développeur node.js et je veux essayer Python comme backend de mon serveur parce que Je suis nouveau sur python Je veux vous demander comment cibler le dossier dist qui contient tous les fichiers HTML et CSS et js des angular 4 applications dans = flask python serveur
Parce que mon application est une application SPA, j'ai défini des routes à l'intérieur angular composant de routage
Lorsque je cours ou sur tout autre itinéraire, je reçois ce message de chaîne './dist/index.html'
Et je sais que je renvoie un message sous forme de chaîne mais je veux dire au flask quel que soit l'itinéraire que le type d'utilisateur sur l'URL laisse le angular pour afficher la page car à l'intérieur mon angular j'ai mis ces pages et fonctionne
toute aide comment commencer avec flask et angular pour construire simple REST API
Maintenant, j'ai cette structure de fichiers
python-angular4-app
|___ dist
| |___ index.html
| |___ style.css
| |___ inline.js
| |___ polyfill.js
| |___ vendor.js
| |___ favicon.ico
| |___ assets
|
|___ server.py
from flask import Flask
app = Flask(__name__, )
@app.route('/')
def main():
return './dist/index.html'
@app.route('/about')
def about():
return './dist/index.html'
@app.route('/contact')
def contact():
return './dist/index.html'
if __name__ == "__main__":
app.run(debug=True)
Cordialement, George35mk thnx pour votre aide
Depuis que j'ai eu ce même problème, j'espère que cette réponse aidera quelqu'un à le chercher à nouveau.
Créez votre python + flask application web avec les points de terminaison requis).
from flask import Flask,render_template
app = Flask(__name__)
@app.route("/")
def hello():
return render_template('index.html')
if __name__ == "__main__":
app.run()
Créez un dossier "modèles" dans votre dossier racine de l'application python.
Copiez votre fichier index.html du dossier angular dist dans le dossier 'templates' nouvellement créé.
Créez un autre dossier appelé 'statique' dans votre dossier racine de l'application python
Copiez ensuite tous les autres fichiers statiques (fichiers JS et fichiers CSS) dans ce nouveau dossier.
Mettez à jour les URL de vos fichiers statiques de fichier index.html comme ceci.
<script type="text/javascript" src="/static/inline.bundle.js"></script>
Flask regardez les fichiers statiques dans le dossier '/ root_folder/static' et mettez à jour l'url par rapport à cette structure.
Terminé. Maintenant, votre application sera diffusée sur localhost: 5000 et angular sera diffusée. La structure finale du dossier ressemblera à ceci,
/pythondApplication
|-server.py
|-templates
| -index.html
|-static
| -js files and css files
Puisque c'est ma première réponse dans stackoverflow, s'il y a quelque chose à corriger, n'hésitez pas à le mentionner.
Je ne pense pas qu'il soit possible d'accéder au répertoire Angular 'dist' via une API REST. Tout routage doit être effectué côté client avec Angular et Flask devrait gérer vos points d'extrémité.
En termes de construction de votre REST API, je recommanderais quelque chose comme ceci:
from flask import Flask, jsonify
app = Flask(__name__)
tasks = [
{
'id': 1,
'title': u'Buy groceries',
'description': u'Milk, Cheese, Pizza, Fruit, Tylenol',
'done': False
},
{
'id': 2,
'title': u'Learn Python',
'description': u'Need to find a good Python tutorial on the web',
'done': False
}
]
@app.route('/todo/api/v1.0/tasks', methods=['GET'])
def get_tasks():
return jsonify({'tasks': tasks})
if __name__ == '__main__':
app.run(debug=True)
Ceci provient d'un très utile tutoriel sur la construction d'une API de base REST dans Flask.
Cela se connectera ensuite très bien à votre côté client dans Angular:
getInfo() {
return this.http.get(
'http://myapi/id')
.map((res: Response) => res.json());
}