Example #1
0
def insert_bien(liste_dico):
    """Insertion des données scrapées dans la base de données"""

    # recuperation des données contenues dans la table ville
    debut = time.time()
    liste_ville = []
    for v in Ville.select():
        liste_ville += [v.nom]
    nb = 0
    nouvelle_villes = []
    for ddico in liste_dico:
        if ddico["lieu"] not in liste_ville:
            liste_ville.append(ddico["lieu"])
            num_ville = Ville.create(nom=ddico["lieu"])
            nouvelle_villes.append(num_ville)
        else:
            recuperateur = Ville.select().where(Ville.nom == ddico["lieu"])
            for r in recuperateur:
                num_ville = r
        liste_dico[nb]["id_ville"] = num_ville.id_ville
        nb += 1

    #creations des données dans la base grâce aux dictionnaire.id_ville
    for biens in liste_dico:
        try:
            with db.atomic():
                Logement.create(**biens)
        except Exception as e:
            print(e)
            pass
    fin = time.time()
    performance_insert = [fin - debut]
    print("la fonction insert_bien a été executée en", performance_insert)
    return nouvelle_villes
Example #2
0
def accueil():
    villes = []
    villes_db = Ville.select().where(Ville.prix_moyen_maison.is_null(False))
    for ville in villes_db:
        villes += [ville.nom]
    image = graphique_index()    
    
    return render_template("index.html", villes=villes, image=image)
Example #3
0
def carte2():
    villes = Ville.select(Ville,Coordonnees,Proximite).join(Coordonnees, 
                                                            on=(Ville.id_ville 
                                                 == Coordonnees.id_ville))
    
    villes = villes.join(Proximite, on=(Ville.id_ville 
                                                 == Proximite.id_ville))
    villes = list(villes.dicts())
    return render_template('carte.html',villes=villes)
Example #4
0
def selection_lien(ville): 
    
    top = []
    appartement = []
    maison = []
    immeuble = []
    id_appartement, id_maison, id_immeuble = obtention_id()
    
    ville_choisie = Ville.select().where(Ville.nom == ville)
    id_ville = ville_choisie[0].id_ville
    prix_appartement = ville_choisie[0].prix_moyen_appart
    prix_maison = ville_choisie[0].prix_moyen_maison
    
    annonces = Logement.select(Logement, Types_bien).join(
            Types_bien, on=(Logement.id_type == Types_bien.id_type)).where(
            Logement.id_ville == id_ville)
    
    for annonce in annonces:
        id_type = annonce.id_type
        if id_type == id_appartement:
            try:
                if annonce.prix_metre_carre < prix_appartement:
                    top += [annonce]
                else:
                    appartement += [annonce]
            except:
                appartement += [annonce]
        
        if id_type == id_maison:
             try:
                 if annonce.prix_metre_carre < prix_maison:
                     top += [annonce]
                 else:
                     maison += [annonce]  
             except:
                 maison += [annonce]
                 pass
        if id_type == id_immeuble:
            immeuble += [annonce]
    return top, appartement, maison, immeuble, prix_appartement, prix_maison
Example #5
0
def sensor():

    print("lancement schedule")
    dico_super = [{
        "lien":
        "https://www.superimmo.com/achat/immeuble/haute-normandie,basse-normandie/a"
        + "-renover",
        "nombre":
        1
    }, {
        "lien": "https://www.superimmo.com/achat/haute-normandie" +
        ",basse-normandie/a-renover",
        "nombre": 1
    }]
    madate = datetime.datetime.now()

    if madate.hour == 11:
        donnée_ville = Ville.select()
        donnée_logement = Logement.select()
        donnée_types_bien = Types_bien.select()

        df_ville = pd.DataFrame(list(donnée_ville.dicts()))
        df_ville.to_excel("ville.xlsx")

        df_logement = pd.DataFrame(list(donnée_logement.dicts()))
        df_logement.to_excel("logement.xlsx")

        df_types_bien = pd.DataFrame(list(donnée_types_bien.dicts()))
        df_types_bien.to_excel("type_bien.xlsx")

        liens_recherche = liens_super(dico_super)
        liste_dico = recuperation_superimmo(liens_recherche)
        nouvelles_villes = insert_bien(liste_dico)
        try:
            recuperation_prix2(nouvelles_villes)
        except:
            pass
        else:
            verification()
        return
Example #6
0
def recuperation_ville():
    villes = Ville.select()
    return villes
Example #7
0
def admin():
    villes = Ville.select()
    df = pd.DataFrame(list(villes.dicts()))
    tables = df.values.tolist()
    return render_template("admin.html",tables=tables)
Example #8
0
def insert_bien(liste_dico):
   
    liste_ville = []
    nouvelle_villes = []
    
    #recuperation des donnees contenues dans la tables villes
    query = Ville.select()
    for v in query :
        if v.nom not in liste_ville: 
            liste_ville += [v.nom]
    
    for d in liste_dico:
        
        try :  
            
            prix, prix_metre_carre, surface = calcul(d["prix"],
                                            d["prix_metre"])
            if prix != None:
                prix = float(prix)  
            else:
                prix = 0     
            if prix_metre_carre != None:
                prix_m = prix_metre_carre 
            else:
                prix_m = 0    
            if surface != None:
                surface = int(surface) 
            else:
                surface = 0
            
            if d["ville"][-1] == " ":
                ville = d["ville"][:-1]
            else :
                 ville = d["ville"]
            
            ville = ville.replace("'"," ")
            
            if ville not in liste_ville:
                liste_ville += [ville]
                nouvelle_ville = Ville.create(nom = ville)
                #la liste nouvelle_villes permet de récuperer les donnees 
                #de cette ville par la suite
                nouvelle_villes += [nouvelle_ville]
            datep = d["date"]        
            datep = datep.replace(" ","")
            datep = datep.replace("/","")
            datep = datetime.datetime.strptime(datep, "%d%m%Y").date()
            datec = datetime.datetime.now()
            
            query = "call insert_biens('"+ville+"','"+d['cp']+"','"
            query += d['quartier']+"','"+d['dpe']+"','"+d['energie']+"','"
            query += d['description'].replace("'","?").replace("%","$")+"','"+str(d['annee'])+"','"+d['taxe_f']
            query +="','"+ d['contact']+"','"+str(datep)+"','"+d['lien']+"','"+str(prix)+"','"
            query += str(surface) +"','"+str(prix_m)+"','"+str(d['id_type'])+"','"+str(datec)+"','"
            query += str(d['nb_chambre'])+"','"+d['cave'] +"','"+d['place']+"','"+d['surface_t']
            query += "','"+d['ext']+ "')" 
            db.execute_sql(query)
            
        except Exception as error :
            
            print(error)
            pass
        
    return nouvelle_villes