Практическая статья о создании мини-чата на FastApi. Вы изучите вебсокеты, узнаете, зачем они нужны и как применяются в реальных приложениях. Также автор продемонстрирует работу с асинхронной SQLAlchemy на примере взаимодействия с базой данных SQLite.
А чтобы наш чат мог обслуживать множество пользователей одновременно, мы выполним деплой нашего FastApi приложения.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
Walrus-оператор (:=) появился в Python 3.8 и позволяет присваивать значения переменным прямо внутри выражений. Это делает код более компактным и читаемым.
Разберем несколько примеров его использования
Обычно приходилось вычислять значение до цикла или в теле цикла:
data = input("Введите что-нибудь: ")
while data:
print(f"Вы ввели: {data}")
data = input("Введите что-нибудь: ")С
:= всё становится проще:while (data := input("Введите что-нибудь: ")):
print(f"Вы ввели: {data}")data вычисляется и проверяется в одном месте.С walrus-оператором можно отфильтровать данные прямо в списочном выражении:
numbers = ["10", "abc", "20", "xyz"]
valid_numbers = [int(num) for num in numbers if (number := num.strip()).isdigit()]
print(valid_numbers) # [10, 20]
num.strip() сохраняется в переменную number и тут же проверяется.Допустим, вы работаете с текстом, который нужно обработать, но только если длина строки превышает определённое значение:
lines = ["short", "this is a long line", "another long line", "tiny"]
long_lines = [line for line in lines if (length := len(line)) > 10]
print(long_lines) # ['this is a long line', 'another long line']
— Вы хотите избежать дублирования вычислений.
— Нужно улучшить читаемость циклов и условий.
— Вместо использования временных переменных.
Фича мощная, но злоупотреблять ею не стоит. Используйте в простых ситуациях, чтобы читаемость кода не пострадала.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17❤3👎1
Идеальный старт для тех, кто хочет освоить машинное обучение и научиться решать практические задачи. Она покажет, как легко самостоятельно построить модели машинного обучения: от анализа настроений в Twitter до прогнозов глобального потепления.
Без сложных математических формул, с акцентом на использование Python и библиотеки scikit-learn, книга подробно объясняет все этапы создания успешных ML-проектов. Подходит как новичкам, так и действующим специалистам, знакомым с Python, NumPy и matplotlib.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
Flet — это мощный фреймворк для разработки интерактивных веб-приложений и настольных GUI, написанных полностью на Python. Он позволяет создавать приложения с современным интерфейсом без необходимости изучения HTML, CSS или JavaScript.
import flet as ft
def main(page: ft.Page):
page.title = "Flet App"
page.vertical_alignment = ft.MainAxisAlignment.CENTER
def button_click(e):
page.add(ft.Text(f"Привет, {name_input.value}!"))
name_input = ft.TextField(label="Введите имя", width=300)
greet_button = ft.ElevatedButton("Поздороваться", on_click=button_click)
page.add(name_input, greet_button)
ft.app(target=main)
pip install flet
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥4
Media is too big
VIEW IN TELEGRAM
Автор показывает как абсолютно бесплатно использовать ChatGPT API, включая его самую последнюю версию - четвёртую. Мы будем работать с Python, как обычно.
Как дополнительный бонус, автор делится несколькими увлекательными идеями о том, как можно применить этот инструмент в своих собственных проектах.
00:00 Вступление
00:50 Официальный API и сколько это стоит
01:57 Начало
03:11 Пример сайтов-провайдеров
05:04 Запуск
09:22 Зачем это всё нужно и где использовать? 3 идеи
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥6
Python позволяет автоматизировать взаимодействие с экраном, что полезно для тестирования интерфейсов, упрощения рутинных задач и создания ботов. Для этого часто используют библиотеку PyAutoGUI — инструмент для работы с клавиатурой, мышью и экранными элементами.
pip install pyautogui
import pyautogui
pyautogui.moveTo(100, 200) # Переместить курсор в точку (100, 200)
pyautogui.click() # Клик левой кнопкой мыши
pyautogui.doubleClick() # Двойной клик
pyautogui.rightClick() # Правый клик
pyautogui.write('Hello, world!', interval=0.1) # Ввод текста с задержкой 0.1 сек
pyautogui.press('enter') # Нажатие клавиши Enter
pyautogui.hotkey('ctrl', 's') # Сочетание клавиш Ctrl+Sscreenshot = pyautogui.screenshot('screenshot.png') # Сохранение скриншота
location = pyautogui.locateOnScreen('button.png') # Поиск кнопки по изображению
if location:
pyautogui.click(location) # Клик по кнопке, если найденаpyautogui.FAILSAFE = True # Движение мыши в угол экрана завершит программу
Это полезно для автоматизации рутинных задач, таких как ввод данных или навигация по интерфейсу, а также для тестирования GUI-приложений. Библиотека подходит для создания ботов, работы с экраном на серверах или виртуальных машинах и упрощения повседневных операций.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥4❤2
This media is not supported in your browser
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤6
Базы данных – ключевой элемент любого современного приложения, и их правильное использование влияет на производительность и стабильность сервиса. Но как обеспечить эффективное взаимодействие с БД в условиях высокой нагрузки?
В статье разбирается, как работать с одной из самых популярных библиотек для работы с базами данных – SQLAlchemy. А чтобы код не блокировался при выполнении запросов, мы добавим асинхронность с Asyncio.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤1🔥1
PyChallenger — это ресурс, который позволяет изучать Python на практике с помощью интерактивных туториалов, решения различных задач и викторин по коду.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤4🔥1
JsonObject — удобная библиотека для быстрого преобразования json в объекты Python. Крайне удобно, когда необходимо принимать данные по API и парсить их в определенные структуры.
class NameUser(JsonObject):
username = StringProperty()
name = StringProperty()
class User(JsonObject):
name_info = ObjectProperty(NameUser)
active = BooleanProperty(default=False)
date_joined = DateTimeProperty()
tags = ListProperty()
user = User({
'name': 'Daniil',
'username': 'Daniil123',
'active': False,
'date_joined': '2023-03-05T02:46:58Z',
'tags': ['new', 'user', 'python']
})
print(user.name_info.name)
# -> Daniil
Эта библиотека способна значительно ускорить процесс работы с внешними API и обработки JSON данных, особенно если требуется структурировать и обрабатывать их поля.
pip install jsonobject
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
Media is too big
VIEW IN TELEGRAM
С ростом популярности Telegram, растет и спрос на разработку ботов. И в этом видео, вы узнаете как создавать ботов на Python с использованием библиотеки aiogram.
Понятное дело, урок не охватывает полностью всю тему и тонкости. Однако, вы получите базу для старта, с которой можно будет двигаться дальше в этом направлении.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤4✍1
Сегодня напишем простой скрипт на Python для анализа лог-файлов. Часто нам нужно вычленить из огромного файла записи об ошибках или другие важные сообщения. Вместо того чтобы просматривать файл вручную, можно автоматизировать этот процесс.
Наш скрипт будет открывать лог-файл, искать строки, содержащие слово "ERROR", и сохранять их в отдельный файл для дальнейшего анализа.
import re
# Указываем имя лог-файла и создаем регулярное выражение для поиска "ERROR"
log_file = 'server.log'
error_pattern = re.compile(r'ERROR')
# Открываем лог-файл для чтения и новый файл для записи ошибок
with open(log_file, 'r', encoding='utf-8') as infile, \
open('errors.log', 'w', encoding='utf-8') as outfile:
for line in infile:
if error_pattern.search(line):
outfile.write(line)
print("Парсинг завершен. Все ошибки сохранены в errors.log")
1. Импортируем модуль
re для работы с регулярными выражениями.2. Задаем имя лог-файла (
server.log) и компилируем шаблон поиска ошибок.3. Читаем лог построчно: если строка содержит "
ERROR", записываем её в новый файл errors.log.4. После выполнения скрипта все найденные ошибки окажутся в файле
errors.log.Такой подход помогает быстро отфильтровать важную информацию, особенно если лог-файл большой.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥2
Из этой статьи, вы узнаете как создать полноценное веб-приложение на FastAPI, которое будет взаимодействовать с Telegram-ботом через WebApp и вебхуки.
В основе проекта — асинхронное взаимодействие с базой данных SQLite с помощью SQLAlchemy, что позволит нам реализовать масштабируемое и эффективное приложение.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤4
Этот хендбук поможет не только разобраться в основах, но и перейти к более сложным темам, которые часто используются в реальных проектах. Удобные примеры и упражнения помогут закрепить знания на практике.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤2
Media is too big
VIEW IN TELEGRAM
В этом уроке, автор рассказывает и показывает как начать работать с FastAPI, как выстроить проект, настроить работу с базой данных и миграции.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Schematics — это библиотека для простой и мощной валидации и преобразования данных в Python. Она позволяет создавать модели данных с различными правилами и типами, что обеспечивает строгий контроль над структурой данных.
Подходит для разработчиков, которые хотят легко описывать схемы данных и автоматически валидировать и преобразовывать их перед использованием.
from schematics.models import Model
from schematics.types import StringType, IntType, EmailType
from schematics.exceptions import DataError
# Определение модели данных
class User(Model):
name = StringType(required=True, max_length=10)
age = IntType(required=True, min_value=18, max_value=99)
email = EmailType(required=True)
# Проверка корректных данных
user_data = {'name': 'Alice', 'age': 24, 'email': 'alice@example.com'}
try:
user = User(user_data)
user.validate()
print("Данные корректны:", user.to_native())
except DataError as e:
print("Ошибки в данных:", e)
# Попытка валидации некорректных данных
invalid_data = {'name': '', 'age': 'twenty', 'email': 'bob@example'}
try:
invalid_user = User(invalid_data)
invalid_user.validate()
except DataError as e:
print("Ошибки в данных:", e)
pip install schematics
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤1
🏭 Применение ML для оптимизации работы питательных электронасосов в ТЭЦ металлургического комбината
Как машинное обучение помогло оптимизировать работу насосов на ТЭЦ и сэкономить заводу 19,6 млн рублей.
Разбираем алгоритмы, параметры оборудования и почему даже одинаковые агрегаты работают по-разному.
🖥 Перейти к статье
🐍 Ghostly Python | #статьи
Как машинное обучение помогло оптимизировать работу насосов на ТЭЦ и сэкономить заводу 19,6 млн рублей.
Разбираем алгоритмы, параметры оборудования и почему даже одинаковые агрегаты работают по-разному.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥2❤1