Очередная солянка "секретов и советов", на этот раз про Django и Python

Как посмотреть, сколько места занимают таблицы в базе данных MySQL?

SELECT table_name, engine, ROUND(data_length/1024/1024,2) AS total_size_mb, table_rows FROM information_schema.tables WHERE table_schema='DATABASE_NAME';

где DATABASE_NAME - название нужной базы.

Как посчитать общий размер файлов в Amazon S3 на python?

import boto3

session = boto3.Session(aws_access_key_id='',
                        aws_secret_access_key='')
s3 = session.resource('s3')
for bucket in s3.buckets.all():
    print(bucket.name)
    size = 0
    files = 0
    for key in bucket.objects.all():
        size += key.size
        files += 1
    print(size / 1024.0 ** 3)
    print(files)
    print('')

Расширенный вариант, с разбивкой по типу хранилища

import boto3

bytes_in_gb = 1024.0 ** 3
session = boto3.Session(aws_access_key_id='',
                        aws_secret_access_key='')
s3 = session.resource('s3')
for bucket in s3.buckets.all():
    print(bucket.name)
    size_std = 0
    files_std = 0
    size_rrs = 0
    files_rrs = 0
    size_sia = 0
    files_sia = 0
    for key in bucket.objects.all():
        if key.storage_class == 'STANDARD':
            size_std += key.size
            files_std += 1
        elif key.storage_class == 'REDUCED_REDUNDANCY':
            size_rrs += key.size
            files_rrs += 1
        elif key.storage_class == 'STANDARD_IA':
            size_sia += key.size
            files_sia += 1
    print('STANDARD:')
    print('{} GB'.format(size_std / bytes_in_gb))
    print('{} files'.format(files_std))
    print('REDUCED_REDUNDANCY:')
    print('{} GB'.format(size_rrs / bytes_in_gb))
    print('{} files'.format(files_rrs))
    print('STANDARD_IA:')
    print('{} GB'.format(size_sia / bytes_in_gb))
    print('{} files'.format(files_sia))
    print('')

Как сгенерировать SECRET_KEY?

import random
''.join(random.SystemRandom().choice('abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*(-_=+)') for i in range(50))

Как сделать резервную копию базы данных с удалённого хоста, при этом не копируя данные из определённых таблиц?

(mysqldump -h remotehost.com -u user -p database --no-data && mysqldump -h remotehost.com -u user -p database --ignore-table=database.table1 --ignore-table=database.table2) | gzip > database-$(date +%Y-%m-%d-%H.%M.%S).sql.gz

развернуть дамп можно следующей командой:

zcat database-2000-01-01-01.01.01.sql.gz | mysql -h remotehost.com -u user -p database

Как быстро добавить символы вокруг строки так, чтобы получить красивый комментарий-разделитель?

В питоновской консоли:

>>> '# {:=^77}'.format(' Section 1 ')
'# ================================= Section 1 ================================='