好奇心から、コンピューターに保存した多くのpythonスクリプトを作成しました。ボタンが1つしかないhtmlファイルを作成しました。代わりに、ターミナルにアクセスしてpython <path to script>
、ボタンをクリックすると、pythonスクリプト。これは可能/どうすればできますか?
たとえば、MYSCRIPT.pyを実行するスクリプトを呼び出します。私は少し研究をしましたが、有望なものは何もありませんでした。私は次のコードが間違っていることを知っていますが、出発点はここの私のhtmlファイルだけです。
<!DOCTYPE html>
<html>
<body>
<head>
<input type="button" id='script' name="scriptbutton" value=" Run Script " onclick="exec('python MYSCRIPT.py');">
</head>
</body>
</html>
あなたがHTML
ページ内でこれを完了する方法を求めたので、私はこれに答えています。これに伴う深刻な警告や影響について言及する必要はないと思います..あなたの_.py
_スクリプトのセキュリティを私よりもよく知っていると信じています:-)
jQuery
ライブラリーの.ajax()
関数を使用します。これにより、Python
スクリプトを呼び出すことができますスクリプトが一般にアクセス可能なhtmlディレクトリにある限り ...これは、セキュリティ上の注意事項に留意する部分であると述べました...
_<!DOCTYPE html>
<html>
<head>
</head>
<body>
<input type="button" id='script' name="scriptbutton" value=" Run Script " onclick="goPython()">
<script src="http://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
<script>
function goPython(){
$.ajax({
url: "MYSCRIPT.py",
context: document.body
}).done(function() {
alert('finished python script');;
});
}
</script>
</body>
</html>
_
さらに..スクリプトを実行するには、_www-data
_ユーザーなどに適切なアクセス許可が必要になることに注意してください... A chmod
、および/またはchown
が必要になる場合があります。
これには、バックエンドWebサイトの言語の知識が必要です。
幸いなことに、Pythonの Flask Library は、当面のプロジェクトに適したバックエンド言語です。
別のスレッドから この回答 を確認してください。
それを行うにはさまざまな方法がありますが、セキュリティの平和を念頭に置いた非常に簡単な手法です
1。最初にインストールする必要がありますFlaskpip install flask
コマンドプロンプトで、python microframework、それを学ぶために別の事前知識が必要になることを恐れないでください、それは本当に簡単でほんの数行ですコードのFlask初心者でもすぐに学ぶことができます。こちらも私が学んだチュートリアルです Flask Tutorial for beginner(YouTube)
2。新しいフォルダーを作成する
-最初のファイルはserver.py
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
@app.route('/my-link/')
def my_link():
print ('I got clicked!')
return 'Click.'
if __name__ == '__main__':
app.run(debug=True)
-2nd前のフォルダー内に別のサブフォルダーを作成し、templatesという名前を付けます。ファイルはHTMLファイルになります
index.html
<!doctype html>
<head><title>Test</title>
<meta charset=utf-8> </head>
<body>
<h1>My Website</h1>
<form action="/my-link/">
<input type="submit" value="Click me" />
</form>
<button> <a href="/my-link/">Click me</a></button>
</body>
3。。実行するには、コマンドプロンプトを開いてNew folderディレクトリに移動し、python server.py
スクリプトを実行し、ブラウザの種類localhost:5000
、ボタンが表示されます。クリックして、作成した宛先スクリプトファイルにルーティングできます。
これが役に立てば幸いです。ありがとうございました。
がっかりし、問題がありますが、実行可能です。必要なのは、カスタムURIスキームです。マシン上で登録して構成し、そのスキームのURLをボタンにフックする必要があります。
URIスキームは、URIの://
の前の部分です。標準URIスキームは、たとえばhttps
またはftp
またはfile
です。しかし、fxのようなカスタムがあります。 mongodb
。必要なのはあなた自身ですmypythonscript
。スクリプトを実行するように設定することも、パラメータにスクリプト名を含めてpythonとすることもできます。もちろん、柔軟性とセキュリティのトレードオフです。
リンクで詳細を確認できます。
https://msdn.Microsoft.com/en-us/library/aa767914(v = vs.85).aspx
EDIT:カスタムスキームとは何かに関する詳細を追加しました。
私はこれをWindows上で正確に行いました。現在のすべての作業の「ダッシュボード」として使用するローカルの.htmlページがあります。通常のリンクに加えて、クリック可能なリンクを追加して、MS-Word文書、Excelスプレッドシート、IDE、サーバーへのsshなどを開くことができました。
まず、Windowsレジストリを更新します。ブラウザは、http、https、ftpなどの通常のプロトコルを処理します。独自のプロトコルと、そのプロトコルタイプのリンクがクリックされたときに呼び出されるハンドラーを定義できます。構成は次のとおりです(regedit
で実行)
[HKEY_CLASSES_ROOT\mydb]
@="URL:MyDB Document"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\mydb\Shell]
@="open"
[HKEY_CLASSES_ROOT\mydb\Shell\open]
[HKEY_CLASSES_ROOT\mydb\Shell\open\command]
@="wscript C:\_opt\Dashboard\Dashboard.vbs \"%1\""
これにより、<a href="mydb:open:ProjectX.docx">ProjectX</a>
のようなリンクがある場合、クリックするとC:\_opt\Dashboard\Dashboard.vbs
が呼び出され、コマンドラインパラメーターopen:ProjectX.docx
が渡されます。私のVBSコードはこのパラメーターを見て必要な処理を行います(この場合、.docxで終わるため、ProjectX.docx
をパラメーターとしてMS-Wordを呼び出します。
今では、非常に古いコード(15年以上)であるため、ハンドラーをVBSで記述しました。試したことはありませんが、代わりにPythonハンドラー、Dashboard.py
]を書くことができるかもしれません。スクリプトの場合、リンクはhref="mydb:runpy:whatever.py"
になります(runpy:
プレフィックスは、Pythonで実行するようにハンドルに指示します)。
最良の方法は、Python Webフレームワークを選択できますDjango/Flaskを使用することです。使用することをお勧めしますDjangoはより強力であるため、タスクを完了するためのガイド別の手順は次のとおりです。
pip install Django
django-admin createproject buttonpython
次に、buttonpythonディレクトリにviews.pyというファイル名を作成する必要があります。
views.pyの以下のコードを書きます。
from Django.http import HttpResponse
def sample(request):
#your python script code
output=code output
return HttpResponse(output)
完了したら、urls.pyに移動し、このスタンザを追加します
from . import views
path('', include('blog.urls')),
親ディレクトリに移動して、manage.pyを実行します
python manage.py runserver 127.0.0.1:8001
ステップバイステップガイドの詳細: Run Python HTMLボタンをクリックしたときにスクリプト