クライアント側にはAngularJS、サーバー側にはDjangoというプロジェクトを開始しようとしています。DjangoでAngularJSを使用するベストプラクティス
彼らは(静的ファイル、認証、展開、など)の親友のように動作させるためのベストプラクティスは何ですか
クライアント側にはAngularJS、サーバー側にはDjangoというプロジェクトを開始しようとしています。DjangoでAngularJSを使用するベストプラクティス
彼らは(静的ファイル、認証、展開、など)の親友のように動作させるためのベストプラクティスは何ですか
興味深い最適化のためのDjangoのテンプレートから、あなたのクライアント側のテンプレートに電力を供給する方法があります。しかし、DjangoとAngularJSのテンプレート言語の間の類似点を考えると、ここではやってみる価値はほとんどありません。この種のプロジェクトでは、AngularJSのスタティックサービスとDjango REST Frameworkをペアにします。
操作の私urls.py
順序が最初(厳密に可能な限りのように記述)ほとんど常にDjangoのRESTフレームワークのURLで、地元のテストのための私のSTATIC_ROOT
ディレクトリに私のベースAngularJSアプリケーションテンプレートに他のすべてを指す一般的なパターンが続くの/ devシナリオ:あなたはハッシュタグにそれを好む場合
if settings.DEBUG:
urlpatterns += patterns('django.contrib.staticfiles.views',
url(r'', 'serve', {
'document_root': settings.STATIC_ROOT,
'path': '/base.html'}
),
)
同じアプリ/テンプレートに一致しないリクエストの全てを向けることによって、あなたは、URLとルーティングの歴史・ハックの方法を使用して起動することができます。ハッシュタグに固執するだけの場合は、最終的なURLの一致がより厳しくなる可能性があります(たとえば/
(URLルート)とr'^$'
)。
生産時には、nginxのようなリバースプロキシまたは低速クライアントのHTTPサーバーを使用してAngularJS(静的)コンテンツを提供し、RESTサービスのリクエストをDjango WSGIアプリケーションにプロキシします。
Django RESTフレームワークと通信するために、私は、AngularJSアプリケーションとDjango RESTフレームワークとの間でデータをマーシャリングするために、クラスに似たJSオブジェクトを使用することをお勧めします。このため、angular-django-rest-resourceを使用して、RESTフレームワークビューで公開しているDjangoモデルクラスを表すクラスを生成します。最大限の柔軟性を
角度-ジャンゴ - 残りリソースがリソースを作ることができ、クエリで、私が説明したhereとしてRESTフレームワークのためにインストールジャンゴ・フィルタバックエンドを持っています。これにより、JSリソースは、パラメータによって制限されたDjangoオブジェクト(例えば、/polls/?author=345&finished=1
)を要求できます。
AngularJSメインテンプレートが配信されている別のサーバードメインにDjangoおよびREST操作を展開している場合(たとえば、HTML用に別のインターネットドメインでサードパーティのCDNを使用している場合)、それらのリソースへのクロスドメイン要求を許可することが重要です。このため、私はdjango-cors-headersミドルウェアをお勧めします。
私はこれが役に立ちそうです。 ベストプラクティスセットではありませんが、それは私のために働いたものです。参照ジャンゴとAngularjsのミックスアップを防ぐため
: https://docs.angularjs.org/api/ng/provider/ $ interpolateProvider
基本的に{[{XYZ}]}変数を一緒に使用するために、{{XYZ}}変数と角度を使用するジャンゴを有効にする:
app.config(function($interpolateProvider) {
$interpolateProvider.startSymbol('{[{');
$interpolateProvider.endSymbol('}]}');
});
ありがとうございました!{{}}使用時にdjango + angularを使用する際に問題が発生しました。それは私を夢中にさせていた! – Herman
どのように登録と認証を管理しましたか? – poiuytrez
私は認証部分にDjangoを使用する予定です。 – poiuytrez
良い質問です。すべてのケースが異なるので、私はそれを残しました。コミュニティが採用した「ベストプラクティス」は、AngularJSサービスを作成して、ユーザーの認証ステータスを照会するシングルトンを提供します。 [この記事](http://blog.brunoscopelliti.com/deal-with-users-authentication-in-an-angularjs-web-app)では、このようなサービスをどのように構築するかについて詳細に説明しています。 Djangoの組み込み認証を使用する場合は、[Django RESTフレームワークのセッションベースの認証](http://django-rest-framework.org/api-guide/authentication.html#sessionauthentication)を有効にすることをお勧めします。 。 –