digitalocean spaces example

import boto3

# Initialize a session using Spaces
session = boto3.session.Session()
client = session.client('s3',
                        region_name='ams3',
                        endpoint_url='https://ams3.digitaloceanspaces.com',
                        aws_access_key_id='xxx',
                        aws_secret_access_key='yyy')

unique_name = ['play', 'strim', 'strim-in', 'crowd']
for s in unique_name:
    client.create_bucket(Bucket=s)

# List all Spaces in the region
# response = client.list_buckets()
# for s in [space['Name'] for space in response['Buckets']]:
#     print(s)

# Add a file to a Space
res = client.upload_file('/home/icdu/projects/link/amazonTest/test.docx', 'play', 'test2.docx')
print res
Advertisements

Вопросы к кандидатам Python developer

immutable обьекты – отличия, какие бывают?

Что будет результатом u’sdf’ == ‘sdf’ ?

Специфика сигнаруры

def f1(*args, **kwargs)

pass

что может быть ключом словаря?

Какие отличия range от xrange?

Зачем нужны анонимные функции (lambda)?

Декораторы, зачем нужны?

Какая сложнось пузырьковой сортировки?

что будет результатом?

def f1(a1=[]):

a1.append(1)

print(a1)

f1()

f1()

хорошо ли паралелится задача скрапинга по списку урлов?

В чем отличие?

for a in (o1,o2,o3):

for a in [o1,o2,o3]:

Зачем нужен оператор yield?

Чтобудет результатом выполнения кода?

class A:

v1 = 1

v2 = ‘sdf’

def __init__(self):

v1 = 3.14

v3 = ‘asdf’

a = A()

print(a.v1)

print(a.v2)

print(a.v3)

Рефлексия:

Написать подсчет площади квадрата и круга используя рефлексию.

ubuntu, django, gunicorn, nginx

sudo apt-get install nginx python-pip libpq-dev supervisor

 

export LC_ALL=C

 

sudo pip install django gunicorn psycopg2

Open:

sudo nano /etc/nginx/sites-available/default

Paste:

server {
listen 80;
server_name 192.168.23.109;
access_log /var/log/nginx/access.log;

location /static/ {
alias /home/django/web/static;
}

location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $server_name;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

 

For test guincorn:

gunicorn sg_web.wsgi:application

for re-test:

killall gunicorn

 

For autostart after reboot, open:

nano /etc/supervisor/conf.d/sg_web.conf

Paste:

[program:sg_web]

command=gunicorn sg_web.wsgi:application -c /home/django/sg_web/sg_web/gunicorn.conf.py

directory=/home/djangp/sg_web

user=nobody

autorestart=true

redirect_stderr=true

 

sudo systemctl enable supervisor

 

vk_api + anti-captcha

Install python libraries:

pip install antigate

pip install grab pycurl

pip install requests

init:

vk_session = vk_api.VkApi(phone, password), captcha_handler=captcha_handler)

def captcha_handler(captcha):
    urllib.urlretrieve(str(captcha.get_url()), "captcha.jpg")
    gate = AntiGate(ANTI_CAPTCHA_API_KEY)
    captcha_id = gate.send('captcha.jpg')
    key = gate.get(captcha_id)
    return captcha.try_again(key)

python simple send mail

def send_mail(_from, to, subject, message,
              login, password,
              smtpserver='smtp.gmail.com:587'):
    header = 'From: %s\n' % _from
    header += 'To: %s\n' % ','.join(to)
    header += 'Subject: %s\n\n' % subject
    message = header + message

    server = smtplib.SMTP(smtpserver)
    server.starttls()
    server.login(login,password)
    problems = server.sendmail(_from, to, message)
    server.quit()