コード例 #1
0
def mobiles(request):
    #connect to our local mongodb
    client = MongoClient('localhost',27017)
    #get a connection to our database
    db = client['gsmarena']
    mobileCollection = db['phones_test']

    if request.method == 'GET':
        #get our collection
        mobiles = []
        camera = int(request.query_params['camera'])
        ram = int(request.query_params['ram'])
        storage = int(request.query_params['storage'])
        battery = int(request.query_params['battery'])
        list1 = mobileCollection.find()
        newlist = sorted(list1, key=lambda k: ((camera * int(k['camera']))/8) + ((battery * int(k['battery']))/2100) +
                                              ((ram * int(k['ram']))/2) + ((storage * int(k['storage']))/8),
                         reverse=True)
        for r in newlist:
            mobile = Mobile(r["url"],r["name"],r["camera"],r["ram"],r["storage"],r["battery"])
            mobiles.append(mobile)
        serializedList = mobileSerializer(mobiles, many=True)
        # print serializedList
        return Response(serializedList.data)
    elif request.method == 'POST':
        pass
コード例 #2
0
    def restore_object(self, attrs, instance=None):
        if instance:
            instance.url = attrs.get('url', instance.url)
            instance.name = attrs.get('name', instance.name)
            instance.camera = attrs.get('camera', instance.camera)
            instance.ram = attrs.get('ram', instance.ram)
            instance.storage = attrs.get('storage', instance.storage)
            instance.battery = attrs.get('battery', instance.battery)
            return instance

        return Mobile(attrs.get('url'), attrs.get('name'), attrs.get('camera'), attrs.get('ram'), attrs.get('storage'),
                      attrs.get('battery'))