サーバー側でフラスコ(python)、クライアント側でangularjs(javascript)を使用してWebアプリを開発したいと考えています。github で /flask-angular-seed プロジェクトをチェックアウトしましたが、/angular-seed プロジェクトと同じです。フラスコ フレームワークのサポートは含まれていません。私はフラスコが初めてです。フラスコと角度をサーバークライアントとして連携させる方法は? フラスコを使用してWebサービスを作成する方法を知っており、角度のあるチュートリアルも行いました。しかし、これら2つを連携させる方法がわかりません(httpリクエストを呼び出す方法や、フラスコがそれを受信して応答する方法など)。
質問する
5739 次
1 に答える
7
私がそれを行う方法は、メインの html テンプレートをロードするインターフェイス (例: /) の単一のルートを持つことです。そのテンプレートは、静的フォルダー内の角度アプリの js を参照します。
次に、さまざまなインタラクション ポイント (私の場合は rest-y) のルートを作成します。私は restangular と呼ばれるAngularモジュールを使用して、それをより簡単/きれいにします。私のルートは、直接使用できるすべてをjsonで返します。
また、/blah/whatever もメイン インターフェイスにルーティングされるように、追加のルートをセットアップします。パスを無視し、Angular js が読み込まれると、ルーター (Angular 内) がパスを確認し、正しいインターフェイス ルートにマップします。
@app.route('/<path:path>')
@app.route('/')
def admin(path=None):
return render_template('angular_interface.html')
基本的に - インターフェースのために、私はフラスコを完全に邪魔にならないようにします。
編集:フォルダごとに次のようなものがあるかもしれません:
__init__.py
api
api/__init__.py
api/resources.py
api/views.py
static/interface/css/style.css
static/interface/js/app.js
static/interface/js/other_modules_etc.js
static/shared/js/angular.js
static/shared/js/restangular.js
templates/interface.html
私__init__.py
には、上記のルーティング構造(およびFlaskアプリのもの)があります。
私の interface.html テンプレートは次のようになります。
<html>
<head>
<title>Blah</title>
<link rel="stylesheet" href="{{ url_for('static', filename='interface/css/style.css') }}"/>
<script src="{{ url_for('static', filename='shared/js/angular.js') }}"></script>
<script src="{{ url_for('static', filename='shared/js/restangular.js') }}"></script>
<script src="{{ url_for('static', filename='interface/js/app.js') }}"></script>
</head>
<body>
{% raw %}
<div ng-app="blah" ng-cloak>
<div ng-controller="BlahCtrl" class="sidebar">
</div>
</div>
{% endraw %}
</body>
</html>
于 2013-09-18T12:53:01.840 に答える