Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
*****Описание модулей*****
---ETL---
работа с исходным csv, подготовка вспомогательных
---DB---
def connection_postgres() - подключение к стандартной базе PostgreSQL
def connection_DB(DB_name) - подключение к БД с определённым именем
def create_DB_and_Role(DB_name) - создание БД и Роли, если ещё не созданы (выполняется при запуске программы)
def create_tables_DB(DB_name) - создание таблиц БД
def filling_tables_DB(DB_name) - заполнение значениям по умолчанию таблиц БД
---util---
модуль для расчёта расстояния между 2мя точками
---model---
при запуске создаётся БД и устанавливается подключение
def all_markets() - подготовка словаря рынков (получается плохая структура значений, список списков списка...)
def market_by_id(id) - значение маркета по ключу
def id_by_location(city, state) - список маркетов по городу и штату
def id_by_zip(zip) - список маркетов по зип коду
def id_by_zip_and_distance(zip, distance) - список маркетов по зипкоду и расстоянию до него (т.к. координаты зип кода определяются по рынку,
а не по отдельной таблице, то берутся координаты первого попавшегося рынка из списка с подходящими зип кодами)
def new_user(fname, lname, username, password) - добавление в таблицу пользователя (обязательно уникальный username)
def new_review(user_id, market_id, score, review) - добавление рецензии, обязательно соблюдение ключей user_id и market_id (вводить существующие)
def delete_review(id) - удаление рецензии по id
def sort_by_state_city(sort) - сортировка маркетов по штату и городу
---view---
связывание ui с model
есть 2 раздела: "просто код" и "код для __name__ == "__main__":"
для удобства в разделах есть коментарии, к какой вкладке код относится
---main_window---
автогенерация py по ui
*****Работа с приложением*****
---запуск приложения---
создаётся пустая база farmers_markets1 и роль role_farmers_markets1
---DB---
чтобы БД заполнилась данными, обязательно сначала создать csv
---Markets---
ПОДКЛЮЧЕНИЕ К БД - ПО СУТИ ФИКТИВНАЯ КЛАВИША, В КОТОРОЙ НЕТ СМЫСЛА ИЗ ЗА КУСКА КОДА В MODEL.PY (ПЛОХАЯ АРХИТЕКТУРА?)
DB.create_DB_and_Role("farmers_markets1")
connection=DB.connection_DB("farmers_markets1")
connection.autocommit = True
cursor = connection.cursor()
ID, Штат Город - заполнение таблицы информацией о маркетах
---Market---
ID, City State, ZIP - т.к. не доделанно, при вводе несуществующих данных приложение падает
New User - обязательно уникальный username
New Review - обязательно существующий id пользователя и id рынка
Del Review - обязательно существующий id пользователя