2017-04-21 4 views
1

私はDjango restとangularjsをかなり使い慣れています。関数を持つDjangoビューを作成しようとしていますが、この関数は角度jsのボタンを介して呼び出さなければなりません。誰も助けてくれますか? Django - Angular TutorialDjangoビューを角度jsで接続する方法フロントエンド?

一般的な答えは次のようになります:これは役立つかもしれない おかげ

+0

のベスト

dspacejs

答えて

1

はあなたがすべての依存関係を解決して、角度を経て

def getRandomInfo(request): 
try: 
    result = database.getRandomInfo() 
    return JsonResponse(result, content_type="application/json", safe=False) 
except Exception as e: 
    import traceback 
    traceback.print_exc(e) 
    return JsonResponse({error:'sorry'}, content_type="application/json", safe=False) 

(random.pyするコントローラファイルを想定)これはあなたのジャンゴ/ PythonのAPIエンドポイントであると言うと機能角度のアプリを持っている、および/またはあなたのhtml/jsの

で設定コントローラは、あなたが{%のURL 'getRandomInfo' %}を気づけば、これはあなたのurls.pで定義されているコード

app.controller("appControllerName", function ($scope, $http) { 
    $http.get("{% url 'getRandomInfo' %}") 
      .success(function (response, status) { 
       response_data = response 
       $scope.data = response_data; 
      }).error(function (response, status) { 
     $scope.status = status; 
    }); 
    } 

の下に使用してAPIを呼び出すことができますyは、getRandomInfoがURLここにあなたがコントローラオーバー

url(r'^random/getRandomInfo/$',random.getRandomInfo, name='getRandomInfo'), 

名はランダムであり、そのコントローラ内の機能がDEF getRandomInfoでの「名前」である必要はありますどこそこのこのような行を追加するu'll必要がありので、djangoはurl r '^ random/getRandomInfo/$(ここでは正規表現が許されます)か、ここの例にあるように、このエンドポイントにアクセスする2つの方法を許可します。幸運:)

+1

ありがとうございます – user7585518

2

1)の例ジャンゴRESTは、角のアプリケーションからあなたの方法(エンドポイント) 2)を露出するために使用するには、以前に公開エンドポイントにリクエストを送信します。

+0

おかげでthinksterを参照するための – user7585518

+0

1を、それを試してみます[ジャンゴ-角度](https://github.com/jrief/django-angular)をチェックし、私は私を開始しましたそこからの旅は、皆さんのための参考になる答えのためにいくつかのコードを使用する必要があります。 –

+0

@シフトN 'タブ - はい、おそらく正しいですが、質問はあまりにも一般的なので、元のポスターのベストオプションは良いチュートリアルで始めること – nick79

関連する問題