Skip to main content
 首页 » 编程设计

python/django之为什么我不能在 views.py 中调用其他函数(在另一个文件中)

2024年10月17日33exmyth

我想使用一些传入参数从我的 views.py 中调用 generate_pic

在 views.py 中我有:

def msa_result(request, measurement_id): 
    try: 
        print measurement_id 
        _measurement = UserMeasurements.objects.get(measurement_id=measurement_id) 
        import MySQLdb 
        db = MySQLdb.connect(host="10.231.XX.XX",  localhost 
                           port=3306, 
                           user="XXX",   
                           passwd="XXX",   
                           db="XX")   
 
        print "connect database successfully" 
        processing_dict = {'set_id': measurement_id } 
        from post_processing import generate_pic 
        result = generate_pic(db, processing_dict) 
        if result=='success' : 
            return render(request, 'msa_result.html', {'measurement': _measurement}) 
        else: 
            raise Http404("Can not process image in post_processing.py") 
    except: 
        raise Http404("oh noooooo @msa_result") 

HTML 页面的错误是“oh noooooo @msa_result”而不是“Can not process image in post_processing.py”

在 post_processing.py 我有:

def generate_pic(db, **kwargs): 
    print "I an here"  #this never print out  
 
    if kwargs['set_id']: 
        user = kwargs.get('user', 'no_user') 
        set_id = kwargs['set_id'] 
        set_id = int(set_id) 
        return 'success' 
    else: 
        return "Please give a set_id to process result." 

views.py 和 post_processing.py 在同一个文件夹中。

我的代码有什么问题?

请您参考如下方法:

在将 dict 传递给函数的地方,您必须在前面加上 ** 才能将其作为 kwargs 传递。

result = generate_pic(db, **processing_dict)