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

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

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