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

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

Канал на бирже: https://telega.in/c/pythonercode
Download Telegram
✈️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
Что выдаст код выше
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