2017-10-08 5 views
0

私はいくつかのデータを取り込み、それを操作するpythonスクリプトを持っています。しかし、私はいくつかのデータを処理し、ビューを更新するために、JavaScriptの内部のクライアント側で実行する必要があります。javascriptの中でpythonスクリプトを実行し、djangoのビューを更新するには

私は以下

DataManipulation.py 

class ModifyData(object): 

     #Bunch of functions to manipulate data 

IDLEシェルの内側にそれをテストしてきたようにデータを操作するのpythonファイルがうまく機能は、URLでビューをレンダリングするために使用される機能も完璧に動作します「... /テスト」です。

views.py 

    def test(request): 

     template = 'app/test.html' 

     file = 'documents/Sample.csv' #File to be loaded 

     args = {'test': file } 

     return render(request, template, args) 

このページをロードした後、私は、テーブル内のページのデータを表示するJavaScriptライブラリを使用して、ユーザーが3で列を掛けるなどのデータを操作することができますが、私はこだわっていますどのようにあります私のDataManipulation.pyファイルを取ってデータを変更し、ボタンの更新された列でページを更新してください。

+1

このアプリケーションではブラウザを使用すると、Pythonスクリプトを提供して実行できなくなります。ブラウザのセキュリティはそれを防ぎます。これが電子アプリまたはnwjsアプリの場合は、上記が可能です。 – user2263572

答えて

1

私はテンプレートにデータを渡してから、javascriptを使ってデータを操作してくださいajaxページを更新せずに更新するには、例:

<!--html--> 
<button onclick="deleteUser({{ request.user.pk }})">Submit</button> 
<!----> 

function deleteUser(userid) { 

    var post_data = { 
     'userid': userid, 
    } 

    $.ajax({ 
     type: "POST", 
     url: "/deleteuser",// the view function to post 
     data: post_data, 
     contentType: 'application/json;charset=UTF-8', 
     success: function(result) { 
      // do something after post 
      ... 
     } 
    }); 
} 

ビュー機能:Pythonクライアント側を実行して以来

# url(r'^/deleteuser$', views.delete_user) 
def delete_user(request): 
    if request.method == 'POST': 
     # do something 
     userid = request.POST.get('userid') 
     user = User.objects.get(pk=userid) 
     # dict contain response data 
     response_data = {...} 

     # return response 
     return HttpResponse(json.dumps(response_data),content_type='application/json') 
+0

あなたは私のpythonスクリプトを全く使用できないと言っていますか? – Richi

+0

私の投稿の更新を確認してください –

+0

なぜあなたはユーザーを削除するためにスクリプトをコピーしていますか? – user2263572

1

はオプションではありません、あなたは、2つのオプションがあります。

  1. JavascriptでModifyDataを書き換えてクライアント側で使用します。

    ユーザーが3で列を掛けるような何かをし
    • 使用し、クライアント側JS
    • は、あなたのサーバがModifyDataを呼び出す持って、その後にデータを返すサーバーにAJAX要求を行いますクライアント
    • は、新しいデータ

とクライアントの更新ビューを持っている私がpoをお勧めしますあなたのPythonコードをJSに書き換えますが、それが可能でない場合は、#2は常に動作します。実装する方法は、クライアントのデータをどのように管理するかによって異なります。

関連する問題