如何将布尔值从javascript传递到python?

如何将布尔值从javascript传递到python?,javascript,python,Javascript,Python,以下内容似乎传递的是字符串而不是布尔值。如何传递布尔值 $.post('/ajax/warning_message/',{'active':false},function(){ 返回 }); def警告消息(请求): active=request.POST.get('active') 打印活动 返回HttpResponse() 假设您可以将布尔值作为true/false或1/0发送到服务器,则在服务器端,您可以使用中的检查这两种情况: def warning_message(request):

以下内容似乎传递的是字符串而不是布尔值。如何传递布尔值

$.post('/ajax/warning_message/',{'active':false},function(){
返回
});
def警告消息(请求):
active=request.POST.get('active')
打印活动
返回HttpResponse()

假设您可以将布尔值作为
true/false
1/0
发送到服务器,则在服务器端,您可以使用
中的
检查这两种情况:

def warning_message(request):
    active = request.POST.get('active') in ['true', '1']
    print active
    return HttpResponse()

否则,如果您确定布尔值仅为
true/false
,请使用:

def warning_message(request):
    active = request.POST.get('active') == 'true'
    print active
    return HttpResponse()

在Python代码中执行以下操作:

active = True if request.POST.get('active') == 'true' else False
或者更简单:

active = request.POST.get('active') == 'true'

请注意,
get()
函数始终会返回字符串,因此您需要根据所需的实际类型对其进行转换。

Oscar的答案是一行,我不想从中获取任何信息,但比较字符串并不是最干净的方法

我喜欢使用图书馆。 专门将JavaScript的自然json形式解析为本机Python类型。因此,这种技术可以用于更广泛的情况

这将为您提供更易于阅读、理解和维护的统一代码技术

从文档中:

将s(包含JSON文档的str或unicode实例)反序列化为Python对象

或者在可能的情况下,您通过参数传递接收到它:

var_to_parse = request.POST.get('name_of_url_variable') #get url param
    if var_to_parse is not None: #check if param was passed, not required
        parsed_var = sjson.loads(var_to_parse) # loads does the work

注意:使用常识导入库,如果您打算在不需要时使用它们。

可以提出这样一个论点,即您应该选择“true”或“1”并只接受这一个值,但如果您同时需要这两个值,这是一个很好的解决方案。@BrendanLong Yes,这也是我的想法。为了便于阅读
active=request.POST.get('active',False)='true'
var_to_parse = request.POST.get('name_of_url_variable') #get url param
    if var_to_parse is not None: #check if param was passed, not required
        parsed_var = sjson.loads(var_to_parse) # loads does the work