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

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

Канал на бирже: https://telega.in/c/pythonercode
Download Telegram
Что выдаст код выше
Anonymous Quiz
5%
2
6%
Python
13%
t
6%
0
47%
Пустая строка
23%
Error
👍12🤔5🤨2
🤔Разбор

Строка "Python" имеет следующие индексы:

Индекс: 0 1 2 3 4 5
Элементы: P y t h o n


В срезе s[4:2] ты указываешь начать с индекса 4 ('o') и закончить на индексе 2 ('t') — но индекс начала больше индекса конца , и в Python такой срез возвращает пустую строку.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥53
✈️PyTesseract — это библиотека Python для распознавания текста на изображениях. Она является оберткой для популярного инструмента Tesseract OCR (Optical Character Recognition) и позволяет легко интегрировать функции распознавания текста в ваши проекты. PyTesseract поддерживает множество языков и форматов изображений, что делает ее идеальным инструментом для задач, связанных с обработкой изображений и распознаванием текста.

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

- Поддержка множества форматов изображений: PyTesseract поддерживает множество форматов изображений, включая JPEG, PNG, BMP и другие.

- Настройка и конфигурация: PyTesseract позволяет настраивать параметры распознавания, что позволяет оптимизировать процесс для ваших конкретных задач.

➡️Пример использования:
import pytesseract
from PIL import Image

# Загрузка изображения
image = Image.open('example.jpg')

# Распознавание текста
text = pytesseract.image_to_string(image, lang='eng')
print(text)


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

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥43
✈️Tweepy — это библиотека Python для работы с API Twitter. Она позволяет разработчикам легко интегрировать свои приложения с Twitter, выполняя различные операции, такие как публикация твитов, чтение ленты, поиск твитов и многое другое. Tweepy предоставляет простой и мощный интерфейс для работы с API Twitter, что делает ее идеальным инструментом для создания приложений, связанных с социальными сетями.

➡️Основные возможности Tweepy:
- Публикация твитов: Tweepy позволяет публиковать твиты и изображения в вашем аккаунте Twitter.

- Чтение ленты: Tweepy позволяет читать ленту твитов, включая твиты из вашего аккаунта и других пользователей.

- Поиск твитов: Tweepy предоставляет инструменты для поиска твитов по ключевым словам, хэштегам и другим параметрам.

- Управление аккаунтом: Tweepy позволяет управлять вашим аккаунтом Twitter, включая чтение и отправку сообщений, блокировку и разблокировку пользователей.

- Поддержка аутентификации: Tweepy поддерживает аутентификацию с использованием OAuth, что позволяет безопасно работать с API Twitter.

➡️Пример публикации твита:
import tweepy

# Ключи и токены для аутентификации
consumer_key = 'YOUR_CONSUMER_KEY'
consumer_secret = 'YOUR_CONSUMER_SECRET'
access_token = 'YOUR_ACCESS_TOKEN'
access_token_secret = 'YOUR_ACCESS_TOKEN_SECRET'

# Аутентификация
auth = tweepy.OAuth1UserHandler(consumer_key, consumer_secret, access_token, access_token_secret)
api = tweepy.API(auth)

# Публикация твита
api.update_status('Hello, Twitter!')


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

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍3🔥2
🌴BST - это древовидная структура данных, в которой каждый узел имеет максимум два потомка. Основное свойство BST заключается в том, что каждый узел на большее значение, чем все узлы в его левом поддереве и на меньшее значение, чем все узлы в его правом поддереве. Этот уникальный атрибут делает BST идеальным для быстрого поиска данных.

➡️Пример BST на Python:
class Node:
def __init__(self, key):
self.left = None
self.right = None
self.val = key

def insert(root, key):
if root is None:
return Node(key)
else:
if root.val < key:
root.right = insert(root.right, key)
else:
root.left = insert(root.left, key)
return root

def inorder(root):
if root:
inorder(root.left)
print(root.val),
inorder(root.right)

r = Node(50)
r = insert(r, 30)
r = insert(r, 20)
r = insert(r, 40)
r = insert(r, 70)
r = insert(r, 60)
r = insert(r, 80)

inorder(r)

⬆️В этом примере мы создаем BST с помощью Python. Мы определяем класс Node, который представляет узел в BST. Затем мы определяем функции для вставки нового узла и для обхода BST.

➡️Преимущества и недостатки BST

BST имеют множество преимуществ, благодаря которым они широко используются. Они позволяют быстро осуществлять поиск, вставку и удаление данных. Однако BST также имеют некоторые недостатки. Например, если дерево не сбалансировано, время поиска может увеличиться.
То есть, по сути, это сортированное дерево, поиск в котором легко выполнить, из-за того, что оно упорядочено.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍53
✈️Requests-OAuthlib — это библиотека Python для аутентификации OAuth. Она позволяет легко интегрировать аутентификацию OAuth в ваши приложения, что делает ее идеальным инструментом для работы с API, требующими аутентификации OAuth. Requests-OAuthlib поддерживает множество сервисов, включая Twitter, GitHub, Google и другие.

➡️Основные возможности Requests-OAuthlib:
- Поддержка OAuth 1.0 и OAuth 2.0: Requests-OAuthlib поддерживает аутентификацию OAuth 1.0 и OAuth 2.0, что позволяет работать с различными API.

- Поддержка множества сервисов: Requests-OAuthlib поддерживает множество сервисов, включая Twitter, GitHub, Google и другие.

- Безопасность: Requests-OAuthlib обеспечивает безопасную аутентификацию, что важно для работы с API, требующими аутентификации.

➡️Пример Аутентификации OAuth 1.0 с Twitter:
from requests_oauthlib import OAuth1Session

# Ключи и токены для аутентификации
consumer_key = 'YOUR_CONSUMER_KEY'
consumer_secret = 'YOUR_CONSUMER_SECRET'
access_token = 'YOUR_ACCESS_TOKEN'
access_token_secret = 'YOUR_ACCESS_TOKEN_SECRET'

# Создание сессии OAuth 1.0
twitter = OAuth1Session(consumer_key, client_secret=consumer_secret,
resource_owner_key=access_token,
resource_owner_secret=access_token_secret)

# Запрос к API Twitter
response = twitter.get('https://api.twitter.com/1.1/account/verify_credentials.json')

# Вывод результата
print(response.json())


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

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥92👍2
✈️В Python можно передать набор значений в функцию с помощью *args и **kwargs.

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

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

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

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

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

- Интеграция с Flask: Flask-Login полностью интегрирован во Flask, что позволяет использовать все возможности Flask вместе с функциями аутентификации.

- Поддержка аутентификации: Flask-Login поддерживает различные методы аутентификации, включая аутентификацию по паролю и токенам.

- Безопасность: Flask-Login обеспечивает безопасную аутентификацию, что важно для создания надежных веб-приложений.

➡️Пример создания простого приложения с аутентификацией:
from flask import Flask, request, redirect, url_for, render_template
from flask_login import LoginManager, UserMixin, login_user, login_required, logout_user

app = Flask(__name__)
app.secret_key = 'your_secret_key'

# Конфигурация Flask-Login
login_manager = LoginManager()
login_manager.init_app(app)
login_manager.login_view = 'login'

# Мок-база данных пользователей
users = {'user1': {'password': 'password1'}}

class User(UserMixin):
def __init__(self, id):
self.id = id

@login_manager.user_loader
def load_user(user_id):
return User(user_id)

@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
username = request.form['username']
password = request.form['password']
if username in users and users[username]['password'] == password:
user = User(username)
login_user(user)
return redirect(url_for('protected'))
return 'Invalid username or password'
return render_template('login.html')

@app.route('/protected')
@login_required
def protected():
return 'Logged in as: ' + current_user.id

@app.route('/logout')
@login_required
def logout():
logout_user()
return 'Logged out'

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


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

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

➡️Основные возможности Flask-Migrate:
- Автоматическая генерация миграций: Flask-Migrate позволяет автоматически генерировать миграции на основе изменений в моделях базы данных.

- Интеграция с Alembic: Flask-Migrate интегрирует Alembic, что позволяет использовать все возможности Alembic для управления миграциями.

- Поддержка множества баз данных: Flask-Migrate поддерживает множество реляционных баз данных, включая SQLite, PostgreSQL, MySQL и другие.

➡️Примеры использования. Инициализация миграций:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///example.db'
db = SQLAlchemy(app)
migrate = Migrate(app, db)

class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)

# Инициализация миграций
# flask db init
# flask db migrate -m "Initial migration."
# flask db upgrade


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

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍64🔥1
👍7🔥2
🤔9🤓3🤨2👍1
🤔Разбор

Если мы ожидаем, что match должен перейти ко второму кейсу, потому что где-то произошла неявная распаковка, то это ошибка.
Потому что структура данных, с которой работает match, — это конкретный кортеж: ('a', 'b', 'c', 'd', 'e').
И первый кейс точно совпадает с этой структурой.


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

➡️Основные возможности Flask-Admin:
- Быстрое создание административных интерфейсов: Flask-Admin позволяет быстро создавать административные интерфейсы для управления данными в ваших веб-приложениях.

- Поддержка множества баз данных: Flask-Admin поддерживает множество реляционных баз данных, включая SQLite, PostgreSQL, MySQL и другие.

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

➡️Пример cоздания административного интерфейса:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_admin import Admin
from flask_admin.contrib.sqla import ModelView

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///example.db'
app.config['SECRET_KEY'] = 'your_secret_key'
db = SQLAlchemy(app)

# Создание модели
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)

# Создание административного интерфейса
admin = Admin(app, name='Admin Panel', template_mode='bootstrap3')
admin.add_view(ModelView(User, db.session))

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


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

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍3🔥1
✈️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