如何返回响应HttpResponse?

2024-10-02 00:32:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python/javascript新手,这是我的第一篇文章。我想用html提交一个“课程名”(即bio101),用javascript将“课程名”发送给python,用python做一个mysql搜索来获取“课程名”的信息,然后计算一些关于课程的信息(即班上学生的DNA基因型)。然后我希望python将学生DNA基因型的计算结果发送回javascript,并绘制一个显示计算结果的表格。我得到的代码返回对象:对象到javascript,而不是存储在“gwas”字典中的数据。我认为问题出在python脚本的最后一行代码的某个地方,但是我不知道如何使这一行工作。你知道吗

在javascript中,相关行包括:

click_course_retrieve: function(event, object, view) {
    var output = {};
    output['course-name'] = $('#course-name-textarea').val();
    response = $.get('/submit/get_course_data/', output, check_submission);

在python中,相关行包括:

def get_course_data(request):
    course_name_request = request.GET.get('course-name')

    cursor = connections['default'].dict_cursor()

    query = """
    select *
    from interpretome_exercises.class_gwas
    where course_name = '%s';
    """ % course_name_request

    cursor.execute(query)

    data = cursor.fetchall()

    snps = [('A', 'G'),
           ('A', 'G'),
           ('C', 'G'),
           ('C', 'T'),
           ('A', 'G')]

    snp_name = ['4988235', '7495174', '713598', '17822931', '4481887']

    phenotypes = ['earwax', 'eyes', 'asparagus', 'bitter', 'lactose']

    traits = [  ('Wet', "Dry"),
                ('Brown/Other', 'Blue/Green'),
                ('Yes', 'No'),
                ('Yes', 'No'),
                ('Yes', 'No')]

    gwas = dict()

    for snp in snp_name:
        gwas[snp] = dict()
        gwas[snp]['earwax'] = [0, 0, 0, 0]
        gwas[snp]['eyes'] = [0, 0, 0, 0]
        gwas[snp]['asparagus'] = [0, 0, 0, 0]
        gwas[snp]['bitter'] = [0, 0, 0, 0]
        gwas[snp]['lactose'] = [0, 0, 0, 0]


    for row in data:
        for i, snp in enumerate(snp_name):
            for allele in row[snp]:

                if allele.find(snps[i][0]) != -1:
                    if row['lactose'] == 'lactose_yes':
                        gwas[snp]['lactose'][0] += 1
                    else:
                        gwas[snp]['lactose'][1] += 1

                    if row['bitter'] == 'bitter_yes':
                        gwas[snp]['bitter'][0] += 1
                    else:
                        gwas[snp]['bitter'][1] += 1

                    if row['asparagus'] == 'asparagus_yes':
                        gwas[snp]['asparagus'][0] += 1
                    else:
                        gwas[snp]['asparagus'][1] += 1

                    if row['eyes'] == 'brown' or row['eyes'] == 'other':
                        gwas[snp]['eyes'][0] += 1
                    else:
                        gwas[snp]['eyes'][1] += 1

                    if row['earwax'] == 'earwax_wet':
                        gwas[snp]['earwax'][0] += 1
                    else:
                        gwas[snp]['earwax'][1] += 1

                if allele.find(snps[i][1]) != -1:
                    if row['lactose'] == 'lactose_yes':
                        gwas[snp]['lactose'][2] += 1
                    else:
                        gwas[snp]['lactose'][3] += 1

                    if row['bitter'] == 'bitter_yes':
                        gwas[snp]['bitter'][2] += 1
                    else:
                        gwas[snp]['bitter'][3] += 1

                    if row['asparagus'] == 'asparagus_yes':
                        gwas[snp]['asparagus'][2] += 1
                    else:
                        gwas[snp]['asparagus'][3] += 1

                    if row['eyes'] == 'brown' or row['eyes'] == 'other':
                        gwas[snp]['eyes'][2] += 1
                    else:
                        gwas[snp]['eyes'][3] += 1

                    if row['earwax'] == 'earwax_wet':
                        gwas[snp]['earwax'][2] += 1
                    else:
                        gwas[snp]['earwax'][3] += 1

#     want to return gwas[];
    print(gwas)
    return http.HttpResponse(simplejson.dumps(gwas), mimetype = "application/json")

Tags: nameifjavascriptgwaselse课程yesrow

热门问题