如何将数据从 JavaScript 发送到 Python

jih*_*oon 5 javascript python google-app-engine

我正在 jinja2 和 python2.7 上使用 GAE 进行 Web 开发

我可以从Python获取数据。但我无法将数据从 JavaScript 发送到 Python。这是 JavaScript 代码:

function toSave() {
    var val_no = $('#field-no').val();
    var val_name = $('#field-name').val();
    var val_address = $('#field-address').val();
    var val_phone = $('#field-phone').val();
    var val_car = $('#field-car').val();
    var val_penalty = $('#field-penalty').val();

    $.ajax({
        type: 'GET',
        url: "https:/test/User_update",
        data: {
            "no": val_no,
            "name": val_name,
            "address": val_address,
            "phone": val_phone,
            "car": val_car,
            "penalty": val_penalty
        },
        dataType: "json"
    }).done(function () {
        $('#modal-1').modal('hide');
        table.row.data([val_no, val_name, val_address, val_phone, val_car, val_penalty, UserIndex_CreateEditButton(val_no, val_name, val_address, val_phone, val_car, val_penalty), UserIndex_CreateDeleteButton(val_no)], $('#' + tempUpdate));
    });
}
Run Code Online (Sandbox Code Playgroud)

Python 代码(main.py 中的 User_update 类):

import os
import webapp2
import MySQLdb
import json
import logging
import googlemaps
import jinja2
import sys
import urllib
import urllib2
import json as simplejson
import codecs

reload(sys)
sys.setdefaultencoding('utf-8')
from operator import eq
from datetime import datetime
from collections import OrderedDict

class User_update(webapp2.RequestHandler):
def get(self):

    jsonData = json.loads(self.get('data'))

#   penalty = self.request.get('data')

#   phone = urllib.request.urlopen(req).read() 
#   data = urllib.requset.urlopen("http://www.daum.net").read()
#   phone=urllib2.urlopen("https://firststep-2016.appspot.com/Log").read()  

    self.response.headers['Content-Type']='text/plain'

    db = connect_to_cloudsql()
    cursor = db.cursor()
    cursor.execute("SET names utf8")
    cursor.execute('SET SQL_SAFE_UPDATES=0;')
    cursor.execute("""update User set name='%s',address='%s',phone='%s',car_num='%s',penalty='%s' where no='%s' """%(jsonData.name,jsonData.address,jsonData.phone,jsonData.car,jsonData.penalty,jsonData.no))
    db.commit()
    db.close()
Run Code Online (Sandbox Code Playgroud)

如何从 Python 获取 JavaScript 数据?

kid*_*sew 1

看起来您正在尝试使用错误的方法发布数据。您应该使用 POST 而不是 GET 向服务器发送数据

$.ajax({
    type: 'POST',
    url: "https://firststep-2016.appspot.com/User_update",
    data: {
        "no": val_no,
        "name": val_name,
        "address": val_address,
        "phone": val_phone,
        "car": val_car,
        "penalty": val_penalty
    },
    dataType: "json"
}).done(function () {
    $('#modal-1').modal('hide');
    table.row.data([val_no, val_name, val_address, val_phone, val_car, val_penalty, UserIndex_CreateEditButton(val_no, val_name, val_address, val_phone, val_car, val_penalty), UserIndex_CreateDeleteButton(val_no)], $('#' + tempUpdate));
});
Run Code Online (Sandbox Code Playgroud)

然后在Python服务器中处理传入的数据

def post(self):
    ....
Run Code Online (Sandbox Code Playgroud)