Осталось сохранять фото, сделать выбор директории и на это всё посадить GUI интерфейс
class Functional:
img = "/html/body/div/div[1]/div/main/header/img"
word = "/html/body/div/div[1]/div/main/div[1]/div[1]/div[2]/b"
translate = "/html/body/div/div[1]/div/main/div[1]/div[1]/div[1]/span"
transcription = "/html/body/div/div[1]/div/main/div[1]/div[2]/div[2]/b"
headers = {'Content-Type': 'text/html'}
BASEDIR = os.path.abspath(os.path.dirname(__file__))
def __init__(self, link, img_name, path_to_folder=BASEDIR) -> None:
self.response = requests.get(link, headers=self.headers)
self.path_to_folder = path_to_folder
self.img_name = img_name
def get_data(self):
result = []
soup = bs4.BeautifulSoup(self.response.text, features="lxml")
dom = etree.HTML(str(soup))
word = dom.xpath(self.word)[0].text
translate = dom.xpath(self.translate)[0].text
transcription = dom.xpath(self.transcription)[0].text
element = dom.xpath(self.img)[0]
img = etree.tostring(element, encoding='utf-8').decode('utf-8')
s = bs4.BeautifulSoup(img, 'html.parser')
img = s.img['src']
result.append(
[word, transcription, translate]
)
Functional.save_data(self, result)
Functional.save_img(self, img)
def save_data(self, result):
with open("test.csv", "r", encoding="utf-8") as file:
if not file.read():
print(False)
with open("test.csv", "w", encoding="utf-8") as file:
writer = csv.writer(file)
writer.writerow(
(
"Слово",
"Транскрипция",
"Перевод"
)
)
writer.writerows(
result
)
else:
print(True)
with open("test.csv", "a", encoding="utf-8") as file:
writer = csv.writer(file)
writer.writerows(
result
)
def save_img(self, src_img):
response = requests.get(src_img, stream=True)
with open(f"{self.img_name}.svg", 'wb') as file:
file.write(response.content)
Принципы проектирования SOLID с примерами на Python / Habr
https://habr.com/ru/companies/otus/articles/651753/
https://habr.com/ru/companies/otus/articles/651753/
Хабр
Принципы проектирования SOLID с примерами на Python
Эффективный алгоритм – основа работы эффективного программного обеспечения. Когда алгоритм уже есть, следующая задача – сделать так, чтобы ПО было разработано с использованием лучших методов...
vue.js + flask
https://www.youtube.com/watch?v=H_YaI8QrjHs&list=PLWQhUNXl0LnhEJ1D892p1Wh4PcGias7hG&index=1
https://www.youtube.com/watch?v=H_YaI8QrjHs&list=PLWQhUNXl0LnhEJ1D892p1Wh4PcGias7hG&index=1
YouTube
Веб-приложение на Vue.js. Создание проекта
Telegram: https://t.me/ruslandevlive
Discord: https://discord.gg/HXs2tm9
Исходный код: https://gitlab.com/RuslanPeresy/snippets/-/tree/master/vue-client
Discord: https://discord.gg/HXs2tm9
Исходный код: https://gitlab.com/RuslanPeresy/snippets/-/tree/master/vue-client
⚙ Как работают SQL Joins: шпаргалка:
SQL Join используется для поиска информации в базах данных по заранее определенным критериям. В частности, Join отвечает за объединение нескольких групп данных в единый поток информации.
🔹INNER JOIN возвращает совпадающие строки в обеих таблицах
🔹LEFT JOIN возвращает все записи из левой таблицы и соответствующие записи из правой
🔹RIGHT JOIN возвращает все записи из правой таблицы и соответствующие записи из левой
🔹FULL OUTER JOIN возвращает все записи, в которых есть совпадения, в левой или правой таблице
SQL Join используется для поиска информации в базах данных по заранее определенным критериям. В частности, Join отвечает за объединение нескольких групп данных в единый поток информации.
🔹INNER JOIN возвращает совпадающие строки в обеих таблицах
🔹LEFT JOIN возвращает все записи из левой таблицы и соответствующие записи из правой
🔹RIGHT JOIN возвращает все записи из правой таблицы и соответствующие записи из левой
🔹FULL OUTER JOIN возвращает все записи, в которых есть совпадения, в левой или правой таблице
Интернет магазин на Джанго (темплейтами как я понял)
https://youtu.be/w-ITLbRfhnA?si=cN54wxxB4B864iaE
https://youtu.be/w-ITLbRfhnA?si=cN54wxxB4B864iaE
YouTube
Django полный курс - Создание интернет магазина на python c Django 4 с нуля | Часть 1
00:00 Введение в курс по Django 4
02:20 Что такое Django
03:40 Backend схема работы
06:35 Осмотр верстки (макета) сайта
10:00 Выбор редактора кода для Django проекта
12:10 Выбор версии Django и python
15:56 Установка Django и настройка проекта
38:56 Поверхностный…
02:20 Что такое Django
03:40 Backend схема работы
06:35 Осмотр верстки (макета) сайта
10:00 Выбор редактора кода для Django проекта
12:10 Выбор версии Django и python
15:56 Установка Django и настройка проекта
38:56 Поверхностный…
Что такое SOLID?
SOLID — это акроним принципов объектно-ориентированного программирования, которые помогают писать гибкий, поддерживаемый и расширяемый код:
S — Single-responsibility principle (Принцип единственной ответственности).
O — Open-closed principle (Принцип открытости/закрытости).
L — Liskov substitution principle (Принцип подстановки Лисков).
I — Interface segregation principle (Принцип разделения интерфейса).
D — Dependency Inversion Principle (Принцип инверсии зависимостей).
Основные идеи SOLID:
— Каждый класс должен нести единственную ответственность.
— Классы должны быть открыты для расширения, но закрыты для модификации.
— Подклассы должны быть взаимозаменяемы со своими базовыми классами.
— Множество узких интерфейсов лучше, чем один широкий.
— Зависимости должны строиться на абстракциях, а не конкретных классах.
SOLID — это акроним принципов объектно-ориентированного программирования, которые помогают писать гибкий, поддерживаемый и расширяемый код:
S — Single-responsibility principle (Принцип единственной ответственности).
O — Open-closed principle (Принцип открытости/закрытости).
L — Liskov substitution principle (Принцип подстановки Лисков).
I — Interface segregation principle (Принцип разделения интерфейса).
D — Dependency Inversion Principle (Принцип инверсии зависимостей).
Основные идеи SOLID:
— Каждый класс должен нести единственную ответственность.
— Классы должны быть открыты для расширения, но закрыты для модификации.
— Подклассы должны быть взаимозаменяемы со своими базовыми классами.
— Множество узких интерфейсов лучше, чем один широкий.
— Зависимости должны строиться на абстракциях, а не конкретных классах.
Короче, 4 причины почему не стоит использовать конструкторы по типу Тильда.
Ну первое, это грёбаные конструкторы, на которых ты сможешь сделать только базовый интернет магазин или лендинг, без динамической подгрузки, то есть если у тебя более 100 товаров, не вздумай юзать конструкторы.
Второе, это невозможность сделать профиль с персонализацией, отслеживанием чего-либо и т.п. (Я сжу это по Тильде, ибо это самый популярный конструктор, не путать wordpress с ними).
Третье, они не любят высоконагруженные проекты, просто напросто не выдерживают и падают.
Четвёртое, если вы разрабатываете социальные сети или сложные сервисы, тут я не смогу чего-то сказать, если человек выбрал конструктор для этого, я просто похлопаю
Ну первое, это грёбаные конструкторы, на которых ты сможешь сделать только базовый интернет магазин или лендинг, без динамической подгрузки, то есть если у тебя более 100 товаров, не вздумай юзать конструкторы.
Второе, это невозможность сделать профиль с персонализацией, отслеживанием чего-либо и т.п. (Я сжу это по Тильде, ибо это самый популярный конструктор, не путать wordpress с ними).
Третье, они не любят высоконагруженные проекты, просто напросто не выдерживают и падают.
Четвёртое, если вы разрабатываете социальные сети или сложные сервисы, тут я не смогу чего-то сказать, если человек выбрал конструктор для этого, я просто похлопаю
Видос попался, вкратце, скилбокс, яндекс, м.видео и там парочку юзают оказывается тильду.
То есть огромный интернет магазин, очень большая компания в которой в основном микро сервисы и крупнейшая компания с курсами по программированию юзают конструкторы?!
Просто промолчу
То есть огромный интернет магазин, очень большая компания в которой в основном микро сервисы и крупнейшая компания с курсами по программированию юзают конструкторы?!
Просто промолчу
❤1
🐍 Часть 1: Особенности, сферы применения, установка, онлайн IDE
🐍 Часть 2: Все, что нужно для изучения Python с нуля – книги, сайты, каналы и курсы
🐍 Часть 3: Типы данных: преобразование и базовые операции
🐍 Часть 4: Методы работы со строками
🐍 Часть 5: Методы работы со списками и списковыми включениями
🐍 Часть 6: Методы работы со словарями и генераторами словарей
🐍 Часть 7: Методы работы с кортежами
🐍 Часть 8: Методы работы со множествами
🐍 Часть 9: Особенности цикла for
🐍 Часть 10: Условный цикл while
🐍 Часть 11: Функции с позиционными и именованными аргументами
🐍 Часть 12: Анонимные функции
🐍 Часть 13: Рекурсивные функции
🐍 Часть 14: Функции высшего порядка, замыкания и декораторы
🐍 Часть 15: Методы работы с файлами и файловой системой
🐍 Часть 16: Регулярные выражения
🐍 Часть 17: Основы скрапинга и парсинга
🐍 Часть 18: Основы ООП – инкапсуляция и наследование
🐍 Часть 19: Основы ООП – абстракция и полиморфизм
🐍 Часть 20: Графический интерфейс на Tkinter
🐍 Часть 21: Основы разработки игр на Pygame
🐍 Часть 22: Основы работы с SQLite
🐍 Часть 23: Основы веб-разработки на Flask
🐍 Часть 24: Основы работы с NumPy
🐍 Часть 25: Основы анализа данных с Pandas
🐍 Часть 2: Все, что нужно для изучения Python с нуля – книги, сайты, каналы и курсы
🐍 Часть 3: Типы данных: преобразование и базовые операции
🐍 Часть 4: Методы работы со строками
🐍 Часть 5: Методы работы со списками и списковыми включениями
🐍 Часть 6: Методы работы со словарями и генераторами словарей
🐍 Часть 7: Методы работы с кортежами
🐍 Часть 8: Методы работы со множествами
🐍 Часть 9: Особенности цикла for
🐍 Часть 10: Условный цикл while
🐍 Часть 11: Функции с позиционными и именованными аргументами
🐍 Часть 12: Анонимные функции
🐍 Часть 13: Рекурсивные функции
🐍 Часть 14: Функции высшего порядка, замыкания и декораторы
🐍 Часть 15: Методы работы с файлами и файловой системой
🐍 Часть 16: Регулярные выражения
🐍 Часть 17: Основы скрапинга и парсинга
🐍 Часть 18: Основы ООП – инкапсуляция и наследование
🐍 Часть 19: Основы ООП – абстракция и полиморфизм
🐍 Часть 20: Графический интерфейс на Tkinter
🐍 Часть 21: Основы разработки игр на Pygame
🐍 Часть 22: Основы работы с SQLite
🐍 Часть 23: Основы веб-разработки на Flask
🐍 Часть 24: Основы работы с NumPy
🐍 Часть 25: Основы анализа данных с Pandas
Библиотека программиста
🐍 Самоучитель по Python для начинающих. Часть 1. Особенности, сферы применения, установка, онлайн IDE
В первой части расскажем о сферах применения Python, о преимуществах и недостатках языка, а также рассмотрим все способы установки и запуска интерпретатора онлайн.
Мега-Учебник Flask, Часть 1: «Привет, Мир!» / Хабр
https://habr.com/ru/articles/193242/
https://habr.com/ru/articles/193242/
Хабр
Мега-Учебник Flask, Часть 1: «Привет, Мир!»
Это первая статья в серии, где я буду документировать мой опыт написания веб-приложения на Python, используя микрофреймворк Flask. Здесь список всех статей в серии: Часть 1: Привет, Мир! Часть 2:...