Angular-cli с любым другим сервером

Я относительно новичок в Angular 2, и я пытаюсь создать приложение, используя систему angular-cli. Это работает, и я могу ng-serve, и приложение появляется. Тем не менее, кажется, что огромная боль в заднице пытается и обслуживать приложение ничем иным, чем системой ng-serve. В частности, я пытаюсь выполнить приложение, созданное с помощью angular-cli, с помощью приложения Python Flask. Количество обручей, с которыми я, похоже, прыгаю, пытаясь заставить это работать, делает меня сумасшедшим! Я хочу сделать это, потому что я хочу обслуживать REST API с помощью приложения Python / Flask, которое будет отвечать на запросы HTTP-сервисов из приложения Angular 2.

Вот соответствующие версии, которые я использую:

node - 6.2.2 npm - 2.9.5 angular 2 - rc.4 angular-cli - 1.0.0-beta.9 python - 2.7.5 flask - 0.10.1 

Как я могу использовать приложение «Угловое», используя флажок?

2 Solutions collect form web for “Angular-cli с любым другим сервером”

Я действительно «сортировал» проблему. У меня есть каталог с названием «дым» (короткий для дыма и зеркал), и внутри там я запустил команду углового кли:

 ng new static 

Это создало приложение запуска angular-cli в статическом каталоге. Затем я создал это (упрощенное) приложение Python Flask:

 import os from flask import Flask, send_from_directory, redirect from flask.ext.restful import Api from gevent import monkey, pywsgi monkey.patch_all() def create_app(): app = Flask("press_controller") # map the root folder to index.html @app.route("/") def home(): return redirect("/index.html") @app.route("/<path:path>") def root(path): """ This is the cheesy way I figured out to serve the Angular2 app created by the angular-cli system. It essentially serves everything from static/dist (the distribution directory created by angular-cli) """ return send_from_directory(os.path.join(os.getcwd(), "static/dist"), path) return app if __name__ == "__main__": app = create_app() server = pywsgi.WSGIServer(("0.0.0.0", 5000), app) server.serve_forever() else: app = create_app() 

Таким образом, я могу перейти к http: // localhost: 5000, и приложение будет обслуживать приложение «Угловое», как это делает «ng serve». Теперь я могу добавить в конечные точки API REST, как я хотел, и получить доступ к ним для работы с угловыми службами для заполнения приложения.

Doug

Нет требования, чтобы Flask подавала заявку на внешний интерфейс.

Действительно, вся Flask будет делать с помощью приложения Angular, которое обслуживает статические файлы, что лучше обрабатывается веб-сервером, например Nginx, или инструментами инфраструктуры, такими как ng-serve в разработке.

Тем временем Flask будет выступать в качестве серверного сервера api, с которым взаимодействует ваше приложение frontend. Используйте request.get_json() и return jsonify(...) чтобы получать и отвечать данными JSON.

Запускайте два отдельно, они работают только по HTTP. Это также упрощает работу с backend vs. frontend разработчиками: все, что им нужно знать, это api для связи между ними.

Interesting Posts
Python - лучший язык программирования в мире.