Pythoner
7.22K subscribers
859 photos
27 videos
4 files
653 links
Полезные материалы по Python, которые будут интересны опытному и начинающему разработчику.

Сотрудничество - @flattys
Цены - @serpent_media

Канал на бирже: https://telega.in/c/pythonercode
Download Telegram
✈️Flask-Caching — это расширение для фреймворка Flask, которое позволяет легко добавить кэширование в ваши веб-приложения. Кэширование помогает улучшить производительность приложения, уменьшая время отклика и нагрузку на сервер. Flask-Caching поддерживает множество кэш-бэкендов, включая простой кэш, Redis, Memcached и другие.

➡️Основные возможности Flask-Caching:
- Поддержка множества кэш-бэкендов: Flask-Caching поддерживает множество кэш-бэкендов, включая простой кэш, Redis, Memcached и другие.

- Кэширование функций и представлений: Flask-Caching позволяет кэшировать результаты функций и представлений, что помогает улучшить производительность приложения.

- Конфигурация и настройка: Flask-Caching позволяет легко настроить кэш, включая время жизни кэша, размер кэша и другие параметры.

➡️Пример использования простого кэша:
from flask import Flask
from flask_caching import Cache

app = Flask(__name__)
# Конфигурация кэша
app.config['CACHE_TYPE'] = 'SimpleCache'
cache = Cache(app)

@app.route('/')
@cache.cached(timeout=50) # Кэширование на 50 секунд
def index():
return 'Hello, World!'


Полезные ссылки:
Официальный сайт
GitHub

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍2🔥2
✈️Flask-RESTX — это расширение для фреймворка Flask, которое упрощает создание RESTful API. Flask-RESTX предоставляет мощные инструменты для создания, документирования и тестирования API, что делает его идеальным инструментом для разработчиков, которые хотят быстро и легко создать веб-сервисы.

➡️Основные возможности Flask-RESTX:
- Автоматическая документация: Flask-RESTX автоматически генерирует документацию для вашего API в формате Swagger/OpenAPI, что упрощает использование и тестирование API.

- Поддержка ресурсов и методов: Flask-RESTX поддерживает создание ресурсов и методов, что позволяет легко определить структуру вашего API.

- Поддержка аутентификации и авторизации: Flask-RESTX поддерживает аутентификацию и авторизацию, что позволяет обеспечить безопасность вашего API.

➡️Пример cоздания простого API:
from flask import Flask
from flask_restx import Api, Resource

app = Flask(__name__)
api = Api(app)

@api.route('/hello')
class HelloWorld(Resource):
def get(self):
return {'message': 'Hello, World!'}

if __name__ == '__main__':
app.run(debug=True)


Полезные ссылки:
Официальный сайт
GitHub

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍64🔥2
✈️Flask-DebugToolbar — это расширение для фреймворка Flask, которое предоставляет мощные инструменты для отладки и мониторинга ваших веб-приложений. Flask-DebugToolbar позволяет легко отслеживать ошибки, просматривать запросы и ответы, а также анализировать производительность вашего приложения. Это идеальный инструмент для разработчиков, которые хотят улучшить процесс разработки и отладки своих веб-приложений.

➡️Основные возможности Flask-DebugToolbar:
- Отладка ошибок: Flask-DebugToolbar позволяет легко отслеживать и анализировать ошибки в вашем приложении.

- Мониторинг запросов и ответов: Flask-DebugToolbar предоставляет подробную информацию о каждом запросе и ответе, что помогает вам лучше понять, что происходит в вашем приложении.

- Анализ производительности: Flask-DebugToolbar позволяет анализировать производительность вашего приложения, включая время выполнения запросов и использование ресурсов.

➡️Включение Flask-DebugToolbar в вашем приложении:
from flask import Flask
from flask_debugtoolbar import DebugToolbarExtension

app = Flask(__name__)
app.config['SECRET_KEY'] = 'your_secret_key'
app.config['DEBUG_TB_INTERCEPT_REDIRECTS'] = False

# Инициализация DebugToolbar
toolbar = DebugToolbarExtension(app)

@app.route('/')
def index():
return 'Hello, World!'

if __name__ == '__main__':
app.run(debug=True)


➡️Использование Flask-DebugToolbar для отладки ошибок:
@app.route('/error')
def error():
# Пример ошибки
1 / 0
return 'This should not be displayed'


Полезные ссылки:
Официальный сайт
GitHub

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍2🔥2
Полезная шпора с командами Git

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍6🔥1
➡️В Python существует концепция "сырых строк" (raw strings), которая позволяет обозначить строку таким образом, чтобы все символы в ней интерпретировались буквально, без учета экранирующих символов (escape characters).

➡️В сырой строке символ обратного слэша '\' не будет интерпретироваться как начало экранированной последовательности, а будет рассматриваться просто как обычный символ.

➡️Это особенно удобно, например, при работе с путями к файлам в операционной системе Windows, где обратные слеши используются для разделения директорий, но могут мешать при использовании обычных строк из-за экранирования.

💡Заключение
Таким образом, сырые строки позволяют избежать необходимости использования двойных обратных слешей при работе с путями файлов, что делает код более читаемым и удобным для работы.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍2🔥2
Forwarded from IT memer
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🤣6😁2
👀5👍2
Что выдаст код выше
Anonymous Quiz
6%
1 2 3
6%
3 6
66%
3 1 2
12%
[1, 2, 1, 2, 1, 2]
10%
Error
🤓9🤔6👍1🤨1
🤔Разбор

В принте сначала выводим b — 3, а потом через запятую выводим *a.
* рядом с итерируемым объектом как бы распаковывает его в выводе. Поэтому список [1, 2] превратится просто в 1 2.



🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍5🔥2
✈️Flask-Session — это расширение для фреймворка Flask, которое позволяет управлять сеансами в ваших веб-приложениях. Flask-Session предоставляет инструменты для хранения данных сеанса на стороне сервера, что делает его идеальным инструментом для разработчиков, которые хотят обеспечить безопасное и надежное управление сеансами в своих веб-приложениях.

➡️Основные возможности Flask-Session:
- Управление сеансами: Flask-Session позволяет управлять сеансами, включая хранение данных сеанса на стороне сервера.

- Поддержка различных хранилищ: Flask-Session поддерживает множество хранилищ для данных сеанса, включая Redis, Memcached, файлы и другие.

- Безопасность: Flask-Session обеспечивает безопасное хранение данных сеанса, что важно для создания надежных веб-приложений.

➡️Использование Flask-Session с Redis:
from flask import Flask, session
from flask_session import Session

app = Flask(__name__)
app.config['SESSION_TYPE'] = 'redis'
app.config['SESSION_PERMANENT'] = False
app.config['SESSION_USE_SIGNER'] = True
app.config['SECRET_KEY'] = 'your_secret_key'

# Инициализация Flask-Session
Session(app)

@app.route('/')
def index():
session['key'] = 'value'
return 'Session set!'

@app.route('/get')
def get():
return session.get('key', 'Not set')

if __name__ == '__main__':
app.run(debug=True)


Полезные ссылки:
Официальный сайт
GitHub

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍2🔥1
✈️Метод string.rfind() в Python используется для поиска последнего вхождения подстроки в строке. Метод возвращает индекс (позицию) последнего вхождения подстроки в строку, если подстрока не найдена, то метод возвращает -1.

➡️Примеры использования:
1.Поиск последнего вхождения подстроки:

text = "Hello, world! Welcome to Python."
result = text.rfind("o")
print(result) # Вывод: 25


2.Поиск подстроки в определенном диапазоне:
text = "Hello, world! Welcome to Python."
result = text.rfind("o", 10, 20)
print(result) # Вывод: 13


3.Обработка случая, когда подстрока не найдена:
text = "Hello, world! Welcome to Python."
result = text.rfind("z")
print(result) # Вывод: -1


💡Заключение:
Метод string.rfind() полезен, когда вам нужно найти позицию последнего вхождения подстроки в строку, и может быть использован в различных сценариях программирования.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍103🔥1
✈️Statsmodels — это библиотека Python для статистического анализа данных. Она предоставляет широкий набор инструментов для описательной статистики, статистических тестов, моделей линейной регрессии, временных рядов и многого другого. Statsmodels идеально подходит для аналитиков, исследователей и разработчиков, которые работают с данными и хотят проводить статистический анализ.

➡️Основные возможности Statsmodels:
- Описательная статистика: Statsmodels предоставляет инструменты для вычисления основных статистических показателей, таких как среднее, медиана, стандартное отклонение и другие.

- Статистические тесты: Statsmodels поддерживает множество статистических тестов, включая t-тест, F-тест, хи-квадрат и другие.

- Модели линейной регрессии: Statsmodels позволяет создавать и анализировать модели линейной регрессии, включая оценку параметров и статистическую значимость.

- Временные ряды: Statsmodels предоставляет инструменты для анализа временных рядов, включая ARIMA, SARIMA и другие модели.

➡️Пример описательной статистики:
import statsmodels.api as sm
import pandas as pd

# Создание данных
data = pd.DataFrame({
'A': [1, 2, 3, 4, 5],
'B': [2, 3, 5, 7, 11]
})

# Описательная статистика
desc_stats = data.describe()
print(desc_stats)


Полезные ссылки:
Официальный сайт
GitHub
Документация

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍3🔥3🤯1
✈️В Python почти всё рассматривается как объект: числа, строки, функции, классы и модули — всё это объекты. Тем не менее, есть некоторые элементы, которые объектами не являются:

➡️Операторы и синтаксис:
Операторы (например, +, -, *, and, or, not и другие) — это части языка, которые не представлены как объекты в памяти.

➡️Аннотации типов:
Аннотации типов, такие как list[str], не создают объекты во время выполнения программы, а используются лишь для статического анализа кода.
def func(x: int) -> str:
return str(x)


➡️Имена переменных:
Имена переменных — это просто ссылки на объекты, а не сами объекты. Переменная указывает на объект в памяти, но сама по себе не объект.
x = 42  # 'x' — это имя, а не объект
print(type(x)) # Объектом является число 42, а не имя 'x'


➡️Ключевые слова:
Ключевые слова Python (if, else, while, for, def, class, return и т.д.) — это зарезервированные слова, которые используются для управления логикой программы, и они не являются объектами.
print(type(if))  # Ошибка: ключевое слово не объект


🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍5🔥4
✈️Декоратором называется функция, которая принимает функцию с таким же именем, как у исходной, но с расширенной функциональностью. Декораторы часто используются во фреймворках, чтобы упростить интеграцию пользовательских функций с фреймворком.

➡️Паттерн Декоратор настолько полезен, что в Python встроена специальная поддержка для него. Декорировать можно как функции, так и методы.

➡️Кроме того, Python поддерживает декораторы классов: функции, которые принимают класс в качестве аргумента и возвращают новый класс с таким же именем, как у исходного, но с дополненной функциональностью.

Иногда декораторы классов удобно использовать как альтернативу производным классам.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍5🔥3
👍9👌3
Что выдаст код выше
Anonymous Quiz
3%
1
19%
True
9%
0
54%
False
14%
Error
🤔8🤨32🤓2
🤔Разбор

Функция any() используется для проверки наличия хотя бы одного True элемента в итерируемом объекте.
У нас есть:
False —> False
0 —> False
[] —> пустой список —> False
() —> пустой кортеж —> False

Все элементы - False, а функция any() требует хотя бы один True.
Ответ: False


🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
135🔥5
🌐GitLab - это веб-платформа для управления репозиториями Git, используемыми для хранения и управления исходным кодом приложений. Это инструмент для разработки программного обеспечения, который предоставляет широкий набор функций, в том числе управление версиями, совместную работу, непрерывную интеграцию и непрерывную доставку.

➡️Управление версиями

Одной из основных функций GitLab является управление версиями. Эта функция позволяет разработчикам сохранять различные версии кода, которые могут быть использованы для восстановления предыдущих версий при необходимости. Благодаря системе контроля версий, которая реализована в GitLab, разработчики могут работать над одним и тем же проектом, не опасаясь потерять свою работу.

➡️Совместная работа

GitLab также предоставляет широкие возможности для совместной работы над проектами. Разработчики могут создавать задачи, определять приоритеты и назначать ответственных за их выполнение. Это позволяет упростить коммуникацию между разработчиками и ускорить процесс разработки.

➡️Непрерывная интеграция и доставка

GitLab также предоставляет инструменты для непрерывной интеграции и доставки (CI/CD), что позволяет автоматизировать процесс сборки, тестирования и развертывания кода. Это ускоряет процесс разработки и повышает качество кода.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍2🔥2
✈️Requests-HTML — это библиотека Python, которая объединяет простоту Requests и мощность PyQuery для парсинга HTML. Она позволяет не только извлекать данные из веб-страниц, но и выполнять JavaScript, что делает её идеальным инструментом для веб-скрапинга современных сайтов с динамическим контентом.

➡️Основные возможности Requests-HTML:
- Парсинг HTML: Requests-HTML предоставляет удобные методы для парсинга HTML-документов с помощью CSS-селекторов и XPath.

- Выполнение JavaScript: Библиотека может выполнять JavaScript на странице, что позволяет получать данные, загруженные динамически.

- Сессии и куки: Поддерживает работу с сессиями и куки, что полезно для авторизации и поддержания состояния.

➡️Примеры использования:
1. Парсинг HTML с CSS-селекторами:
from requests_html import HTMLSession

session = HTMLSession()
r = session.get('https://example.com')

# Извлечение заголовков
titles = r.html.find('h1')
for title in titles:
print(title.text)


2. Выполнение JavaScript:
from requests_html import HTMLSession

session = HTMLSession()
r = session.get('https://example.com')

# Выполнение JavaScript на странице
r.html.render()

# Извлечение динамического контента
dynamic_content = r.html.find('#dynamic-element', first=True)
print(dynamic_content.text)


Полезные ссылки:
Официальный сайт
GitHub

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍107🔥2
✈️Пагинация — это разбиение большого списка данных на страницы. Она помогает не перегружать интерфейс и backend. Например, когда выводим 10 товаров на страницу, а не все 1000 сразу.

➡️Вот простой пример пагинации с использованием Python и Flask:
from flask import Flask, request, jsonify

app = Flask(__name__)

# Наши "данные" — список из 100 чисел
DATA = list(range(1, 101))

@app.route('/items')
def get_items():
# Получаем параметры из запроса
page = int(request.args.get('page', 1))
per_page = int(request.args.get('per_page', 10))

# Вычисляем границы
start = (page - 1) * per_page
end = start + per_page

# Отдаём нужный кусок
return jsonify({
'page': page,
'per_page': per_page,
'items': DATA[start:end]
})

if __name__ == '__main__':
app.run(debug=True)


🔫Пример запроса:
http://localhost:5000/items?page=3&per_page=5

#Ответ: элементы с 11 по 15


🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍94🔥3