2016-07-19 7 views
2

私の現在のウェブサイトにPythonスクリプトを組み込むための良い方法があるのだろうかと思います。私のウェブサイトにPythonスクリプトを組み込むにはどうすればいいですか?フレームワークが必要ですか?

私はしばらくの間、私の個人的なウェブサイト&を持っています。これまでのところhtml/css/javascriptになっています。過去に別のウェブサイトのAPIを使用して自分のウェブサイトに表示したいものを取得するPythonスクリプトを作成しました。私は端末からPythonを使って入力を行い、結果を吐き出しました。私がjavascriptからAjaxを通してPythonスクリプトを実行してコンテンツを取り戻す方法はありますか?

DjangoやFlaskのようなフレームワークを使用したいとは思っていません。ほとんどの場合、プロジェクト全体がそうであるように感じます。私は自分のウェブサイトの1ページに1つのPythonスクリプトを使用したいだけです。これは私がやるべきことですか?どんなアドバイスも素晴らしいでしょう。

+0

を提出しますhttp://airpair.com/python/posts/django-flask-pyramidをご覧ください – boardrider

+0

おかげさまで、皆様のご意見をお寄せいただきありがとうございます。もし誰かがこの質問に遭遇し、私がやったことを知りたければ、PHPを使ってPythonスクリプトとajaxでやり取りしました。 phpでは、私は基本的にシェルコマンドとしてpythonスクリプトを実行するために 'システム'コマンドを使用しました。 – dan

答えて

4

JavaScriptのみを使用しており、フレームワークが解決策ではないと思われる場合は、javascriptを使用してPythonスクリプトを書き直す方がよいでしょう。これらの2つの言語は共通点が多く、そのほとんどは転送可能です。 javascriptからpythonを呼び出すと、それほどうまくいきません。 Pythonスクリプトを共有しない限り(これは、テキストのみの質問がここにはあてはまらないために推奨されます)、すべての回答は意見に基づいています。

+1

あなたが正しいです、すべての答えは意見に基づいていますが、サーバー側(スクリプト言語)またはクライアント側(JavaScript)のロジックを計算するかどうかを検討することが重要です。おそらく@danはサーバーサイドで何らかの操作を必要とするので、彼はPythonについて質問しています – bull90

2

私はDjangoについて完全に同意しますが、Flaskにチャンスを与えることができると思います。本当に軽いので、多くのポーポスに使用できます。とにかく、Pythonスクリプトを呼びたい場合は、それを呼び出す方法が必要です。私は、サービスやWebサービスなどのスクリプトのための "リスナー"が必要だと思います(この理由から、Flaskは本当に簡単な解決策になると思います)。 スクリプトの呼び出しに注意してください。フロントエンドからWebサービスにアクセスできますが、これは「標準」スクリプトからは実行できません。 私の提案は、あなたが考えるより明るいFlaskを見ています。

2

フラスコにチャンスを与えてください! これは、今説明したマイクロサービス向けに設計されています。ここで

は、コード未満の30行で何ができるかです:

app.py(フラスコファイル)

from flask import Flask, request 
from flask import jsonify, render_template 
app = Flask(__name__, template_folder='.', static_folder='.', static_url_path='') 


@app.route('/') 
def index(): 
    return render_template('index.html') 


@app.route('/convert', methods=['POST']) 
def convert(): 
    return jsonify(items=[ 
     ("whatever python function output that you have") 
    ]) 

if __name__ == '__main__': 
    app.run(debug=True) 

index.htmlを

 $.ajax({ 
      url: '/convert', 
      type: 'POST', 
      data: formData, 
      async: false, 
      cache: false, 
      contentType: false, 
      processData: false, 
      success: function (data) { 
       var el = $('#req_result'); 

       for (let item of data.items) { 
        ### show your result here ### 
        } 
       } 

       $('#req_hide').hide(); 
       el.show(); 
      } 
     }); 
     }); 
+0

Flaskを使用していただきありがとうございます!私もそれを試みるかもしれない。私はこれについて1つの質問があります... ajaxのURLはあなたのapp.routeにあるあなたの例では '/ convert'です。どのようにあなたのapp.pyファイルにそのルートを使うのですか?それはhtmlのどこかに何かのように注入されていますか? – dan

関連する問題