Từ document.getElementsByTagName
, tôi đoán bạn đang chạy JavaScript trong trình duyệt.
Cách truyền thống để phơi bày chức năng với JavaScript chạy trong trình duyệt đang gọi một URL từ xa bằng AJAX. X trong AJAX dành cho XML, nhưng ngày nay mọi người đều sử dụng JSON thay vì XML.
Ví dụ: sử dụng jQuery, bạn có thể làm một cái gì đó như:
$.getJSON['//example.com/your/webservice?param1=x¶m2=y',
function[data, textStatus, jqXHR] {
alert[data];
}
]
Bạn sẽ cần phải triển khai dịch vụ web Python ở phía máy chủ. Đối với các dịch vụ web đơn giản, tôi thích sử dụng bình.
Một triển khai điển hình trông giống như:
@app.route["/your/webservice"]
def my_webservice[]:
return jsonify[result=some_function[**request.args]]
Bạn có thể chạy IronPython [loại python.net] trong trình duyệt với Silverlight, nhưng tôi không biết NLTK có sẵn cho IronPython không.
Thời gian đọc ước tính: 3 phút3 minutes
Bạn đang phát triển một trang web và tìm cách thực hiện một số tập lệnh Python trực tiếp từ trang web?
Ở đây chúng tôi đưa bạn qua cách để đạt được điều này bằng bình Python, các kịch bản chúng tôi chứng minh như sau:
- JavaScript On Load Event - Thực thi tập lệnh Python
- JavaScript trên sự kiện nhấp chuột - Thực hiện tập lệnh Python
Trong cả hai kịch bản trên, bạn sẽ được trình bày với các hộp bật lên như bên dưới, nhưng mã Python có thể được thay đổi thành bất cứ điều gì bạn thích.
Mã bạn sẽ cần để chạy cái này được chia thành hai. [A] logic index.html và [b] logic app.py
Mã cho trang Index.html
Đây là trang mà người dùng được trình bày. Như bạn có thể thấy logic có hai phần JavaScript khi chạy, hãy chuyển sang mã Python và chạy một số logic mà nó muốn trang web chạy.
Trong trường hợp này, tập lệnh app.py python giữ các lệnh cần được thực thi.
Lưu ý sự kiện tải trang đi đến tuyến đường trong app.py, cụ thể là @ @app.route [‘/xông]
Trong khi sự kiện nhấp vào nút được trỏ trực tiếp vào tại@@app.route [‘/test,] - về cơ bản điều này sẽ không chạy cho đến khi JavaScript yêu cầu, trên nút Nhấp vào sự kiện.
Sample Home Page
Run my Python!
function myfunction_onload[]{
$.ajax[{
url: "app.py",
context: document.body
}]
}
function myfunction_clickevent[]{
$.ajax[{
url:"/test",
context: document.body}];}
cách chạy Python trực tiếp từ JavaScriptMã cho tập lệnh python app.py
Ở đây chúng tôi đang liên kết với trang index.html và nhận các lệnh từ nó và thực hiện các yêu cầu đó.
Trong kịch bản này, các hộp tin nhắn được hiển thị bằng cách sử dụng gói Win32API.
Ứng dụng đang sử dụng gói Flask để chạy trang web.
Điều mạnh mẽ ở đây là bạn có thể bắt đầu tùy chỉnh logic này để làm những gì bạn thích, các ví dụ bao gồm:
[A] Trả lại đồ thị cho trang web.
[B] Xử lý dữ liệu nhận được và trả về số liệu thống kê trên dữ liệu.
[C] Xác nhận dữ liệu nhận được trong Python và trả về phản hồi. Một ví dụ ở đây có thể là người dùng đăng nhập vào cơ sở dữ liệu.
import win32api
from flask import Flask, render_template
app = Flask[__name__]
#Using the below, the popup message appears on the page load of index.html
#0x00001000 - This makes the popup appear over the browser window
@app.route['/']
def index[]:
win32api.MessageBox[0, 'You have just run a python script on the page load!', 'Running a Python Script via Javascript', 0x00001000]
return render_template['index.html']
#Using the below, the popup message appears when the button is clicked on the webpage.
#0x00001000 - This makes the popup appear over the browser window
@app.route['/test']
def test[]:
win32api.MessageBox[0, 'You have just run a python script on the button press!', 'Running a Python Script via Javascript', 0x00001000]
return render_template['index.html']
if __name__ == "__main__":
app.run[debug=True]