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)
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)
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)
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)
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)