- Быстрое создание административных интерфейсов: Flask-Admin позволяет быстро создавать административные интерфейсы для управления данными в ваших веб-приложениях.
- Поддержка множества баз данных: Flask-Admin поддерживает множество реляционных баз данных, включая SQLite, PostgreSQL, MySQL и другие.
- Кастомизация: Flask-Admin позволяет легко кастомизировать административные интерфейсы, включая изменение шаблонов, стилей и функциональности.
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
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍3🔥1
- Поддержка множества кэш-бэкендов: 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
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍2🔥2
- Автоматическая документация: Flask-RESTX автоматически генерирует документацию для вашего API в формате Swagger/OpenAPI, что упрощает использование и тестирование API.
- Поддержка ресурсов и методов: Flask-RESTX поддерживает создание ресурсов и методов, что позволяет легко определить структуру вашего API.
- Поддержка аутентификации и авторизации: Flask-RESTX поддерживает аутентификацию и авторизацию, что позволяет обеспечить безопасность вашего 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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤4🔥2
- Отладка ошибок: 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)
@app.route('/error')
def error():
# Пример ошибки
1 / 0
return 'This should not be displayed'Официальный сайт
GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍2🔥2
Таким образом, сырые строки позволяют избежать необходимости использования двойных обратных слешей при работе с путями файлов, что делает код более читаемым и удобным для работы.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍2🔥2
🤓9🤔6👍1🤨1
В принте сначала выводим b — 3, а потом через запятую выводим *a.
* рядом с итерируемым объектом как бы распаковывает его в выводе. Поэтому список [1, 2] превратится просто в 1 2.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍5🔥2
- Управление сеансами: Flask-Session позволяет управлять сеансами, включая хранение данных сеанса на стороне сервера.
- Поддержка различных хранилищ: Flask-Session поддерживает множество хранилищ для данных сеанса, включая Redis, Memcached, файлы и другие.
- Безопасность: Flask-Session обеспечивает безопасное хранение данных сеанса, что важно для создания надежных веб-приложений.
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
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍2🔥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() полезен, когда вам нужно найти позицию последнего вхождения подстроки в строку, и может быть использован в различных сценариях программирования.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤3🔥1
- Описательная статистика: 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
Документация
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍3🔥3🤯1
Операторы (например,
+, -, *, 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)) # Ошибка: ключевое слово не объект
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍5🔥4
Иногда декораторы классов удобно использовать как альтернативу производным классам.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍5🔥3
🤔8🤨3❤2🤓2
Функция any() используется для проверки наличия хотя бы одного True элемента в итерируемом объекте.
У нас есть:
False —> False
0 —> False
[] —> пустой список —> False
() —> пустой кортеж —> False
Все элементы - False, а функция any() требует хотя бы один True.
Ответ: False
Please open Telegram to view this post
VIEW IN TELEGRAM
❤13⚡5🔥5
Одной из основных функций GitLab является управление версиями. Эта функция позволяет разработчикам сохранять различные версии кода, которые могут быть использованы для восстановления предыдущих версий при необходимости. Благодаря системе контроля версий, которая реализована в GitLab, разработчики могут работать над одним и тем же проектом, не опасаясь потерять свою работу.
GitLab также предоставляет широкие возможности для совместной работы над проектами. Разработчики могут создавать задачи, определять приоритеты и назначать ответственных за их выполнение. Это позволяет упростить коммуникацию между разработчиками и ускорить процесс разработки.
GitLab также предоставляет инструменты для непрерывной интеграции и доставки (CI/CD), что позволяет автоматизировать процесс сборки, тестирования и развертывания кода. Это ускоряет процесс разработки и повышает качество кода.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍2🔥2
- Парсинг 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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤7🔥2