2017-07-12 23 views
0

ユーザーがHTMLフォームボタンをクリックすると、Pythonコードを実行します。どのようにそれが可能になるだろうか?ユーザーがサーバー上でPythonコードを表示できない可能性はありますか?フォームの入力は、Pythonコードの変数になります。私はFlaskフレームワークとPython 2.7を使用しています。セキュリティはまだ問題ではありません。HTMLフォームボタンからサーバー上でPythonコードを実行する方法

私route.pyファイル:

from pytube import YouTube 
from moviepy.editor import * 
import os 

app = Flask(__name__) 

@app.route("/",methods=['GET','POST']) 
def landing(): 
    return render_template("index.html",ytdir=ytdir,ytlink=ytlink) 

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

Templateフォルダ内のindex.html:基本的に

<form method="POST" action="/"> 
<input type="text" class="form-control" name="ytdir" placeholder="Example: C:\Downloads"> 

<h4>The YouTube Video that you want to download</h4> 
<textarea class="form-control" rows="3" name="ytlink" placeholder="Example: https://www.youtube.com/watch?v=HipaBLsGB_Y"></textarea> 
</form> 
<input class="btn btn-primary" type="submit" value="Download"> 

、私がして、ローカルドライブにYouTubeの動画をダウンロードするPythonコードを持っていますytdirおよびytlinkを使用します。

ここでは、ボタンをクリックしたときに実行されるようにPythonコードを配置する必要があります。

+0

クライアントコンピュータにpythonスクリプトを実行させますか? – SuperShoot

+0

私は、クライアントのコンピュータが私のサーバにPost要求を提出したいと思っています。私のサーバーは入力フィールドを受け取り、pythonスクリプトを実行します。この例では、クライアントのコンピュータはYouTubeのリンクを入力します。その後、私のサーバーには、YouTubeのビデオをダウンロードするためのpythonスクリプトがあります。私は動作するPythonスクリプトを持っています。私は、送信ボタンをクリックした後、私のサーバーにこのpythonコードを実行させる方法を知りません。 – johnmayer

+0

私は理解しており、それは本当に一般的な使用パターンです。実際、Flaskには[jQueryとFlaskでAJAXを実行する方法]に関するチュートリアルがあります(http://flask.pocoo.org/docs/0.12/patterns/jquery/)。 – SuperShoot

答えて

0

私はあなたが行くと、再びドキュメントを読ん$button.click(() => axios.get(http://<localhost url>:<port>/ytdl)のようにjqueryの を使用してファイルをダウンロードするには、「APIコール」

@app.route("/ytdl", methods=["GET"]) 
def download_video(link): 
# call your download code here 
# and return the video as an input stream 
# read the flask tutorial on how to do that 
javascriptの使用axiosで

または何かをするためにどのようにAJAX呼び出しを行うことをお勧めします

関連する問題