Example #1
0
def search_form():
    spec = request.form['specialisation']
    sallary = request.form['sallary']
    location = request.form['location']
    work_place = request.form['work_place']
    comment = request.form['comment']
    commentcity = request.form['commentcity']

    if comment != '':
        spec = comment

    if commentcity != '':
        location = commentcity

    mid_sal_from, mid_sal_to, all_found = sallaryfunction(
        sallary, spec, location)

    data = {
        'spec': spec,
        'sallary': sallary,
        'location': location,
        'work_place': work_place,
        'comment': comment,
        'commentcity': commentcity,
        'mid_sal_from': mid_sal_from,
        'mid_sal_to': mid_sal_to,
        'all_found': all_found
    }

    print(
        "зарплата {}-разработчика в {} для выбранной зарплаты от {} составляет в среднем  от {}руб. до {}руб."
        .format(spec, location, sallary, mid_sal_from, mid_sal_to))

    return render_template('search.html', data=data)
Example #2
0
def search_form2():
    spec = request.form['specialisation']
    sallary = request.form['sallary']
    location = request.form['location']
    comment =  request.form['comment']
    commentcity = request.form['commentcity']
    work_place = request.form.get('check')

    if work_place == None:
        work_place = 'No'
    if comment != '':
        spec = comment

    if commentcity != '':
        location = commentcity

    def get_work_place():
        return work_place

    mid_sal_from, mid_sal_to, all_found, salary_USD = sallaryfunction(sallary, spec, location, work_place)

    data = {
        'id': id,
        'spec': spec,
        'sallary': sallary,
        'location': location,
        'work_place': work_place,
        'comment': comment,
        'commentcity': commentcity,
        'mid_sal_from': mid_sal_from,
        'mid_sal_to': mid_sal_to,
        'all_found': all_found,
        'salary_USD': salary_USD
    }

    print(work_place, type(work_place))
    print(salary_USD, type(salary_USD))

    print("зарплата {}-разработчика в {} для выбранной зарплаты от {} составляет в среднем  от {}руб. до {}руб.".format(spec, location, sallary, mid_sal_from, mid_sal_to))



    print('-----------DB---------------')
    # создаем движок -фактичекм подключение к бд(если бызы нет то она создаться(адрес - то что после /// - можно указать путь к папке)
    # echo = True будем видеть какие sql запросы отправляются в БД- будем вызывать в действительности методы а видеть запросы
    engine = create_engine('sqlite:///orm1.sqlite', echo=False)
    # используем декларативный способ связи с базой данных(будем зараннее создавать класс(который наслудуется от класса Base))
    # и под этот класс будет впоследствии создана таблица в БД(это и есть декларативный способ)
    Base = declarative_base()

    class HH_request(Base):
        # задаем имя таблицы
        __tablename__ = 'HH_DATA'
        # создаем первичный ключ
        id = Column(Integer, primary_key=True)
        spec = Column(String)
        sallary = Column(Integer)
        location = Column(String)
        work_place = Column(String)
        comment = Column(String)
        commentcity = Column(String)
        mid_sal_from = Column(Integer)
        mid_sal_to = Column(Integer)
        all_found = Column(String)
        salary_USD = Column(Integer)


        # id-ник не указываем потому что он автоматически присваивается объекту
        def __init__(self, spec, sallary, location, work_place, comment, commentcity, mid_sal_from, mid_sal_to, all_found, salary_USD):
            self.spec = spec
            self.sallary = sallary
            self.location = location
            self.work_place = work_place
            self.comment = comment
            self.commentcity = commentcity
            self.mid_sal_from = mid_sal_from
            self.mid_sal_to = mid_sal_to
            self.all_found = all_found
            self.salary_USD = salary_USD


        def __str__(self):
            return f'{self.id}, {self.spec}, {self.sallary}, {self.location}, {self.work_place}, {self.comment}, {self.commentcity}, {self.mid_sal_from}, {self.mid_sal_to}, {self.all_found}, {self.salary_USD}'

        def __repr__(self):
            return {self.id}

    # ok класс готов теперь можно запускать
# для этого необходимо вызавать у объекта Base метод metadata и create_all() - при этом будет создана таблица которая соответсвует данному классу
    Base.metadata.create_all(engine)
    # все действия происходит с базами данных  в сессиях
    # пока только создаем объект сессии sessionmaker и указать в качестве параметра bind=engine  т.е тот движок который мы определи выше
    Session = sessionmaker(bind=engine)
    # теперь опеределяем сессию (теперь можем в этой сессии общаться с базой данных)
    session = Session()
    HH_request_1 = HH_request(spec, sallary, location, work_place, comment, commentcity, mid_sal_from, mid_sal_to, all_found, salary_USD)
    session.add(HH_request_1)
    session.commit()
    hh_all = session.query(HH_request)

    # hhIDISHNIK = list(HH_request.__table__.primary_key)
    # print(hhIDISHNIK[0])


    for hh in hh_all:
        print(hh)
        print(hh.id)

    hhspec = session.query(spec)
    print(hhspec)

    data['id'] = HH_request_1.id

    id_all = []
    idall = HH_request_1.id
    id_all.append(idall)
    print(id_all)


    # dishnik = [pk.name for pk in HH_request.__table__.primary_key]
    # print(dishnik)
    # hhid = inspect(HH_request).primary_key[0]                                           # HH_DATA.id
    # print(hhid)
    # hhID = [key.name for key in inspect(HH_request).primary_key]                           # ['id']
    # print(hhID)
    # HHID = class_mapper(HH_request).primary_key[0]                                       # HH_DATA.id
    # print(HHID)
    # IDHH = HH_request.__mapper__.primary_key         #(Column('id', Integer(), table=<HH_DATA>, primary_key=True, nullable=False),)
    # print(IDHH[0])                                     # HH_DATA.id

    return render_template('new_data.html', data=data)
Example #3
0
def search_form2():
    spec = request.form['specialisation']
    sallary = request.form['sallary']
    location = request.form['location']
    comment =  request.form['comment']
    commentcity = request.form['commentcity']
    work_place = request.form.get('check')
    history = request.form.get('history')
    HHrequest1 = None

    if work_place == None:
        work_place = 'No'

    if history == None:
        history = 'No'

    if comment != '':
        spec = comment

    if commentcity != '':
        location = commentcity

    def get_work_place():
        return work_place

    mid_sal_from, mid_sal_to, all_found, salary_USD = sallaryfunction(sallary, spec, location, work_place)

    data = {
        'id': id,
        'spec': spec,
        'sallary': sallary,
        'location': location,
        'work_place': work_place,
        'history': history,
        'comment': comment,
        'commentcity': commentcity,
        'mid_sal_from': mid_sal_from,
        'mid_sal_to': mid_sal_to,
        'all_found': all_found,
        'salary_USD': salary_USD,
        'HHrequest1': HHrequest1
    }

    print(work_place, type(work_place))
    print(history,type(history))
    print(salary_USD, type(salary_USD))

    print("зарплата {}-разработчика в {} для выбранной зарплаты от {} составляет в среднем  от {}руб. до {}руб.".format(spec, location, sallary, mid_sal_from, mid_sal_to))



    print('-----------DB---------------')
    # создаем движок -фактичекм подключение к бд(если бызы нет то она создаться(адрес - то что после /// - можно указать путь к папке)
    # echo = True будем видеть какие sql запросы отправляются в БД- будем вызывать в действительности методы а видеть запросы
    engine = create_engine('sqlite:///orm1.sqlite', echo=False)
    # используем декларативный способ связи с базой данных(будем зараннее создавать класс(который наслудуется от класса Base))
    # и под этот класс будет впоследствии создана таблица в БД(это и есть декларативный способ)
    Base = declarative_base()

    class HH_request(Base):
        # задаем имя таблицы
        __tablename__ = 'HH_DATA'
        # создаем первичный ключ
        id = Column(Integer, primary_key=True)
        spec = Column(String)
        sallary = Column(Integer)
        location = Column(String)
        work_place = Column(String)
        history = Column(String)
        comment = Column(String)
        commentcity = Column(String)
        mid_sal_from = Column(Integer)
        mid_sal_to = Column(Integer)
        all_found = Column(String)
        salary_USD = Column(Integer)
        HHrequest1 = Column(String)


        # id-ник не указываем потому что он автоматически присваивается объекту
        def __init__(self, spec, sallary, location, work_place, comment, commentcity, mid_sal_from, mid_sal_to, all_found, salary_USD):
            self.spec = spec
            self.sallary = sallary
            self.location = location
            self.work_place = work_place
            self.comment = comment
            self.commentcity = commentcity
            self.mid_sal_from = mid_sal_from
            self.mid_sal_to = mid_sal_to
            self.all_found = all_found
            self.salary_USD = salary_USD



        def __str__(self):
            return f'{self.id}, {self.spec}, {self.sallary}, {self.location}, {self.work_place}, {self.comment}, {self.commentcity}, {self.mid_sal_from}, {self.mid_sal_to}, {self.all_found}, {self.salary_USD}'

        def __repr__(self):
            return {self.id}

    # ok класс готов теперь можно запускать
# для этого необходимо вызавать у объекта Base метод metadata и create_all() - при этом будет создана таблица которая соответсвует данному классу
    Base.metadata.create_all(engine)
    # все действия происходит с базами данных  в сессиях
    # пока только создаем объект сессии sessionmaker и указать в качестве параметра bind=engine  т.е тот движок который мы определи выше
    Session = sessionmaker(bind=engine)
    # теперь опеределяем сессию (теперь можем в этой сессии общаться с базой данных)
    session = Session()
    HH_request_1 = HH_request(spec, sallary, location, work_place, comment, commentcity, mid_sal_from, mid_sal_to, all_found, salary_USD)
    session.add(HH_request_1)
    session.commit()
    hh_all = session.query(HH_request)
    print('HH_request_1', HH_request_1)
    data['HHrequest1'] = HH_request_1

    def row2dict(row):
        d = {}
        for column in row.__table__.columns:
            d[column.name] = str(getattr(row, column.name))
        return d

    data_list = []

    for hh in hh_all:
        # print(hh)
        data_list.append(row2dict(hh))



    if (history == 'Yes'):
        if len(data_list) > 15:
            data_l = data_list[int(len(data_list) - 15):]
            data['id'] = data_l
        else:
            data['id'] = data_list
    elif (history != 'Yes'):
        data['id'] = HH_request_1




    return render_template('new_data.html', data=data)
Example #4
0
def search_form2():
    spec = request.form['specialisation']
    sallary = request.form['sallary']
    location = request.form['location']
    work_place = request.form['work_place']
    comment =  request.form['comment']
    commentcity = request.form['commentcity']

    if comment != '':
        spec = comment

    if commentcity != '':
        location = commentcity


    mid_sal_from, mid_sal_to, all_found  = sallaryfunction(sallary, spec, location)

    data = {
        'spec': spec,
        'sallary': sallary,
        'location': location,
        'work_place': work_place,
        'comment': comment,
        'commentcity': commentcity,
        'mid_sal_from': mid_sal_from,
        'mid_sal_to': mid_sal_to,
        'all_found': all_found
    }

    print("зарплата {}-разработчика в {} для выбранной зарплаты от {} составляет в среднем  от {}руб. до {}руб.".format(spec, location, sallary, mid_sal_from, mid_sal_to))
    # print(work_place, type(work_place))


    print('-----------DB---------------')
    connect = None
    try:
        connect = lite.connect('startok.db')
        cur = connect.cursor()
        cur.execute('SELECT SQLITE_VERSION()')
        # берем первый объект из полученных данных и помещяем его в переменную data
        datadb = cur.fetchone()[0]
        print(f'SQLite version: {datadb}')           # SQLite version: 3.31.1
    except lite.Error as e:
        print(f'Error {e.args[0]}:')
        sys.exit()
    # что бы создать таблицу - необходимо выполнит такой sql запрос поэтому закоментируем код создания таблицы


    if ('SELECT * from cities LIMIT 1') == True:
        sqlite_select_query = """SELECT * from cities"""
        cur.execute(sqlite_select_query)
        records = cur.fetchall()

        with connect:
            cur.execute("SELECT Count() FROM cities")
            id = cur.fetchone()[0]
            cur.execute("INSERT INTO cities VALUES(?,?,?,?,?,?,?,?,?)", (id+1, f'{spec}', f'{sallary}', f'{location}', f'{comment}', f'{commentcity}', f'{mid_sal_from}', f'{mid_sal_to}', f'{all_found}'))
            connect.commit()

        for row in records:
            print(row)

        print(len(records))
        print(f'rows updated: {cur.rowcount}')

        connect.close()

    if ('SELECT * from cities LIMIT 1') == False:
        cur.execute('CREATE TABLE cities(id INT, spec TEXT, sallary TEXT, location TEXT, comment TEXT, commentcity TEXT, mid_sal_from INT, mid_sal_to INT, all_found INT)')

    return render_template('new_data.html', data=data)
Example #5
0
def search_form2():
    spec = request.form['specialisation']
    sallary = request.form['sallary']
    location = request.form['location']
    work_place = request.form['work_place']
    comment = request.form['comment']
    commentcity = request.form['commentcity']

    if comment != '':
        spec = comment

    if commentcity != '':
        location = commentcity

    mid_sal_from, mid_sal_to, all_found = sallaryfunction(
        sallary, spec, location)

    data = {
        'id': id,
        'spec': spec,
        'sallary': sallary,
        'location': location,
        'work_place': work_place,
        'comment': comment,
        'commentcity': commentcity,
        'mid_sal_from': mid_sal_from,
        'mid_sal_to': mid_sal_to,
        'all_found': all_found
    }

    print(
        "зарплата {}-разработчика в {} для выбранной зарплаты от {} составляет в среднем  от {}руб. до {}руб."
        .format(spec, location, sallary, mid_sal_from, mid_sal_to))
    # print(work_place, type(work_place))

    print('-----------DB---------------')
    # создаем движок -фактичекм подключение к бд(если бызы нет то она создаться(адрес - то что после /// - можно указать путь к папке)
    # echo = True будем видеть какие sql запросы отправляются в БД- будем вызывать в действительности методы а видеть запросы
    engine = create_engine('sqlite:///orm1.sqlite', echo=False)
    # используем декларативный способ связи с базой данных(будем зараннее создавать класс(который наслудуется от класса Base))
    # и под этот класс будет впоследствии создана таблица в БД(это и есть декларативный способ)
    Base = declarative_base()

    class HH_request(Base):
        # задаем имя таблицы
        __tablename__ = 'HH_DATA'
        # создаем первичный ключ
        id = Column(Integer, primary_key=True)
        spec = Column(String)
        sallary = Column(Integer)
        location = Column(String)
        work_place = Column(String)
        comment = Column(String)
        commentcity = Column(String)
        mid_sal_from = Column(Integer)
        mid_sal_to = Column(Integer)
        all_found = Column(String)

        # id-ник не указываем потому что он автоматически присваивается объекту
        def __init__(self, spec, sallary, location, work_place, comment,
                     commentcity, mid_sal_from, mid_sal_to, all_found):
            self.spec = spec
            self.sallary = sallary
            self.location = location
            self.work_place = work_place
            self.comment = comment
            self.commentcity = commentcity
            self.mid_sal_from = mid_sal_from
            self.mid_sal_to = mid_sal_to
            self.all_found = all_found

        def __str__(self):
            return f'{self.id}, {self.spec}, {self.sallary}, {self.location}, {self.work_place}, {self.comment}, {self.commentcity}, {self.mid_sal_from}, {self.mid_sal_to}, {self.all_found}'

    # ok класс готов теперь можно запускать


# для этого необходимо вызавать у объекта Base метод metadata и create_all() - при этом будет создана таблица которая соответсвует данному классу
    Base.metadata.create_all(engine)
    # все действия происходит с базами данных  в сессиях
    # пока только создаем объект сессии sessionmaker и указать в качестве параметра bind=engine  т.е тот движок который мы определи выше
    Session = sessionmaker(bind=engine)
    # теперь опеределяем сессию (теперь можем в этой сессии общаться с базой данных)
    session = Session()
    HH_request_1 = HH_request(spec, sallary, location, work_place, comment,
                              commentcity, mid_sal_from, mid_sal_to, all_found)
    session.add(HH_request_1)
    session.commit()

    hh_all = session.query(HH_request)
    print(type(hh_all))
    for hh in hh_all:
        print(hh)

    print(
        'Как получить кол-во строк который были обновлены - по аналогии с rowcount? или как правильно прописать rowcount?'
    )
    # print(f'rows updated: {hh_all.rowcount}')

    hhspec = session.query(spec)
    print(hhspec)

    return render_template('new_data.html', data=data)