Hướng dẫn how to send data from javascript to python flask - cách gửi dữ liệu từ javascript sang python flask

Để lấy dữ liệu từ JavaScript đến Python bằng bình, bạn sẽ thực hiện yêu cầu POST AJAX hoặc AJAX nhận yêu cầu với dữ liệu của bạn.

Flask có sẵn sáu phương thức HTTP, trong đó chúng tôi chỉ cần nhận và đăng. Cả hai sẽ lấy

@app.route('/postmethod', methods = ['POST'])
def get_post_javascript_data():
    jsdata = request.form['javascript_data']
    return jsdata
0 làm tham số, nhưng có được nó theo những cách khác nhau. Đó là cách hai ngôn ngữ hoàn toàn khác nhau trong hai môi trường khác nhau như Python và JavaScript trao đổi dữ liệu.

Đầu tiên, khởi tạo một tuyến đường trong bình:

@app.route('/getmethod/')
def get_javascript_data(jsdata):
    return jsdata

hoặc một bài đăng một:

@app.route('/postmethod', methods = ['POST'])
def get_post_javascript_data():
    jsdata = request.form['javascript_data']
    return jsdata

Cái đầu tiên được truy cập bởi

@app.route('/postmethod', methods = ['POST'])
def get_post_javascript_data():
    jsdata = request.form['javascript_data']
    return jsdata
1 với AJAX nhận được như sau:

$.get( "/getmethod/" );

Cái thứ hai bằng cách sử dụng yêu cầu POST AJAX:

$.post( "/postmethod", {
    javascript_data: data 
});

Trong đó

@app.route('/postmethod', methods = ['POST'])
def get_post_javascript_data():
    jsdata = request.form['javascript_data']
    return jsdata
2 là một dict json hoặc một giá trị đơn giản.

Trong trường hợp bạn chọn JSON, hãy đảm bảo bạn chuyển đổi nó thành một dict trong Python:

json.loads(jsdata)[0]

Eg.

GET:

@app.route('/getmethod/')
def get_javascript_data(jsdata):
    return json.loads(jsdata)[0]

POST:

@app.route('/postmethod', methods = ['POST'])
def get_post_javascript_data():
    jsdata = request.form['javascript_data']
    return json.loads(jsdata)[0]

Nếu bạn cần thực hiện theo cách khác, hãy đẩy dữ liệu Python xuống JavaScript, hãy tạo một tuyến đường đơn giản mà không có các tham số trả về Dict được mã hóa JSON:

@app.route('/getpythondata')
def get_python_data():
    return json.dumps(pythondata)

Lấy nó từ jQuery và giải mã nó:

$.get("/getpythondata", function(data) {
    console.log($.parseJSON(data))
})

@app.route('/postmethod', methods = ['POST'])
def get_post_javascript_data():
    jsdata = request.form['javascript_data']
    return jsdata
3 trong
@app.route('/postmethod', methods = ['POST'])
def get_post_javascript_data():
    jsdata = request.form['javascript_data']
    return jsdata
4 là ở đó bởi vì khi bạn giải mã được một Dict được mã hóa JSON trong Python, bạn sẽ nhận được một danh sách với Dict duy nhất bên trong, được lưu trữ tại Index 0, vì vậy dữ liệu được giải mã JSON của bạn trông như thế này:

[{'foo':'bar','baz':'jazz'}] #[0: {'foo':'bar','baz':'jazz'}]

Vì những gì chúng ta cần là chỉ là dict bên trong chứ không phải danh sách, chúng ta nhận được các mục được lưu trữ tại INDEX 0 là Dict.

Ngoài ra,

@app.route('/postmethod', methods = ['POST'])
def get_post_javascript_data():
    jsdata = request.form['javascript_data']
    return jsdata
5.

Trong hướng dẫn này, chúng tôi sẽ xem xét cách chuyển các biến JavaScript sang biến Python trong bình.

Trong JavaScript, các biến lưu trữ dữ liệu có thể được sử dụng hoặc chỉnh sửa sau này. Thường được lấy làm đầu vào, các giá trị này thường được sử dụng ở phía máy chủ. Sử dụng khung bình Python và AJAX, chúng ta có thể chuyển các giá trị JavaScript này đến hàm Python.

Chuyển một biến JavaScript sang biến Python trong bình

Chúng tôi sẽ bao gồm hai thành phần cần thiết để thực hiện thao tác này.

1. Đầu tiên, chúng tôi sẽ hình thành trang HTML của mình, với khu vực đầu vào cơ bản và hàm JavaScript để truyền giá trị cùng.

Hướng dẫn how to send data from javascript to python flask - cách gửi dữ liệu từ javascript sang python flask

Chúng tôi có hàm onclick () đang gọi hàm javaScript sendUserInfo () của chúng tôi. Bây giờ, có một vài điều khoản để hiểu ở đây.

  • GetEuityByID là một phương thức trả về các giá trị có ID khớp với chuỗi được đưa ra trong phương thức. Và mặc dù chúng tôi không chuyển bất kỳ giá trị nào cho hàm JavaScript, nhưng nó nhận được giá trị.
  • Xmlhttpresponse (phương thức/url) là một đối tượng AJAX. Nó được sử dụng trong việc gửi dữ liệu đến máy chủ web. Tạo một đối tượng xmlhttpresponse và truyền giá trị của bạn thông qua nó.
  • JSON.StringFy là một phương pháp JSON phổ biến. Khi chuyển dữ liệu cho dữ liệu máy chủ web phải chuỗi và phương thức .StringFy giúp chúng tôi làm điều đó.

2. Bây giờ, chúng tôi đến với mã bình. Dữ liệu đã được truyền đến chức năng Python và bây giờ chúng ta phải nhận được nó. Hãy nhớ rằng, chúng tôi đã gửi dữ liệu ở định dạng chuỗi JSON và bây giờ chúng tôi phải mở nó. json.loads, nó nhận được chuỗi JSON và chuyển đổi nó thành từ điển Python.

Hướng dẫn how to send data from javascript to python flask - cách gửi dữ liệu từ javascript sang python flask

Và, đây là cách bạn có thể truyền một biến JavaScript được chuyển cho chức năng Python bằng bình.

Bạn cũng có thể tham khảo các hướng dẫn khác của tôi -

  • Ma trận nhầm lẫn bằng cách sử dụng Scikit-learn trong Python

Làm cách nào để chuyển một biến JavaScript cho một python trong bình?

Chuyển một biến JavaScript sang biến python trong bình, chúng tôi có hàm onclick () đang gọi hàm javaScript sendUserInfo () của chúng tôi. Bây giờ, có một vài điều khoản để hiểu ở đây. GetEuityByID là một phương thức trả về các giá trị có ID khớp với chuỗi được đưa ra trong phương thức.We have an onclick() function that is calling our senduserinfo() JavaScript function. Now, there are a few terms to understand here. getElementByID is a method that returns the values whose id matches the string given in the method.

JavaScript có thể giao tiếp với Python không?

Bạn đang tự hỏi làm thế nào bạn có thể gửi dữ liệu từ JavaScript đến Python?Chà, điều đó dễ dàng với giao diện lập trình ứng dụng (API).Ngôn ngữ lập trình giao tiếp và trao đổi dữ liệu bằng API.that's easy with an application programming interface (API). Programming languages communicate and exchange data using APIs.

Làm thế nào để bạn chuyển dữ liệu vào bình?

Flask gửi dữ liệu biểu mẫu đến bình mẫu để gửi dữ liệu biểu mẫu đến mẫu mà chúng tôi đã thấy rằng phương thức HTTP có thể được chỉ định trong quy tắc URL.Dữ liệu biểu mẫu nhận được bởi hàm kích hoạt có thể được thu thập dưới dạng đối tượng từ điển và được chuyển tiếp đến mẫu để hiển thị nó trên trang web tương ứng.http method can be specified in the URL rule. Form data received by the trigger function can be collected in the form of a dictionary object and forwarded to the template to render it on the corresponding web page.

Tôi có thể sử dụng JavaScript trong bình không?

JavaScript chạy trong trình duyệt của người dùng, sau khi mẫu được hiển thị và gửi.Do đó, không thể sử dụng JavaScript để ảnh hưởng đến cách hiển thị mẫu jinja, nhưng có thể kết xuất dữ liệu vào JavaScript sẽ chạy.it is impossible to use JavaScript to affect how the Jinja template is rendered, but it is possible to render data into the JavaScript that will run.