Пример #1
0
    def db_load(self):        
        if self.db_exist == False:
            print ('Creating database structure...')
            call('python d_base.py', shell=True)
            print ('\nImporting data from .json file...')
            self.adding_items_to_db(self.list_with_data)            
            self.addding_price_data_to_db(self.list_with_data)
            print ('Data import completed succesfully.')
        else:
            print ('\nUpdating database...')
            for obj in range(len(data)-1):                
                _item = Item.query.filter(Item.href == data[obj]['href']).first()
                rooms_int, area_int, floor_int = self.test_item_before_adding(data[obj])                
                if _item is None:
                    _object = Item(data[obj]['type'], data[obj]['name'], data[obj]['obj_address'],
                        data[obj]['metro_station'], rooms_int, area_int, data[obj]['href'],
                        data[obj]['source'], floor_int)
                    db_session.add(_object)
                    _item = Item.query.filter(Item.href == data[obj]['href']).first()
                    dt_pr = Date_and_price(data[obj]['price'],datetime.datetime.strptime(data[obj]['date'], '%d-%m-%Y'), 
                            datetime.datetime.strptime(data[-1], '%d-%m-%Y %H:%M:%S'), _item.id)                                        
                    db_session.add(dt_pr)
                else:                    
                    dt_pr = Date_and_price(data[obj]['price'],datetime.datetime.strptime(data[obj]['date'], '%d-%m-%Y'), 
                            datetime.datetime.strptime(data[-1], '%d-%m-%Y %H:%M:%S'), _item.id)                    
                    db_session.add(dt_pr)
            db_session.execute("DELETE FROM date_and_price WHERE rowid NOT IN (SELECT min(rowid) FROM date_and_price GROUP BY price, date_of_creation,date_of_parsing,object_id)")
            db_session.commit()

            print ("\nDatabase updated.")
Пример #2
0
 def addding_price_data_to_db(self, data):
     for est in range(len(data)-1):
         _item = Item.query.filter(Item.href == data[est]['href']).first()
         _item_test = Date_and_price.query.get(_item.id)                       
         dt_pr = Date_and_price(data[est].get('price'),datetime.datetime.strptime(data[est].get('date'), '%d-%m-%Y'), 
             datetime.datetime.strptime(data[-1], '%d-%m-%Y %H:%M:%S'), _item.id)
         if _item_test is None:
             db_session.add(dt_pr)
         else:
             if (_item_test.price, _item_test.date_of_creation, _item_test.date_of_parsing, _item_test.object_id) == (dt_pr.price, dt_pr.date_of_creation, dt_pr.date_of_parsing, dt_pr.object_id):
                 pass        
     db_session.commit()
Пример #3
0
 def adding_items_to_db(self, data):
     for obj in range(len(data)):
         rooms_int, area_int, floor_int = self.test_item_before_adding(data[obj])
         testing_object = Item.query.filter(Item.href == data[obj]['href']).first()
         if testing_object is None:
             _object = Item(data[obj].get('type'), data[obj].get('name'), data[obj]['obj_address'],
                 data[obj].get('metro_station'), rooms_int, area_int, data[obj].get('href'),
                 data[obj].get('source'), floor_int)
         else:
            pass
         db_session.add(_object)
     db_session.commit()