import urllib2
import random
http_proxies = ['http://proxy1.com', 'http://proxy2.com', 'http://proxy3.com', ... ]
need_receive_data = True
while need_receive_data:
try:
random_proxy = random.choice(http_proxies)
print 'Trying {proxy}'.format(proxy=random_proxy)
proxy_handler = urllib2.ProxyHandler({'http': random_proxy })
proxied = urllib2.build_opener(proxy_handler)
proxied.open('http://какой-то сайт')
except urllib2.HTTPError, e:
print 'Error {err}'.format(err=str(e))
else:
need_receive_data = False
print proxied.read()
# -*- coding: utf-8 -*-
from lxml import etree
import StringIO
test ="""<employees>
<employee>
<id>1</id>
<name>Oleg</name>
</employee>
<employee>
<id>2</id>
<name>Masha</name>
</employee>
</employees>"""
fl = StringIO.StringIO()
fl.write(test)
fl.seek(0)
tree = etree.parse(fl)
your_var = 2
event_name2 = tree.xpath(r'.//id[text() = "{id}"]/../name/text()'.format(id=your_var))
print event_name2
['Masha']
[Finished in 0.1s]
>>> class SomeClass:
... pass
...
>>> cls = SomeClass()
>>> print cls.some_var
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: SomeClass instance has no attribute 'some_var'
>>> print hasattr(cls, 'some_var')
False
>>> if not hasattr(cls, 'some_var'):
... cls.some_var = 1
...
>>> print cls.some_var
1
>>> print hasattr(cls, 'some_var')
True
>>>
>>> callable(getattr(cls, 'some_var'))
False
from forms import ВашаФорма
@admin.register(ВашаМодель)
class ВашаМодельAdmin(admin.Modeladmin):
form = ВашаФорма
class ВашаФорма(forms.ModelForm):
ваше_поле = forms.КакойтоСтандартныйФорматПоля()
def save(self, commit=True):
instance = super(ВашаМодель, self).save(commit=False)
# ...тут определяем что делаем с полем при сохранении..
# оно в self.cleaned_data['ваше_поле']
if commit:
instance.save()
return instance
class Meta:
model = ВашаМодель
fields = ('ваше_поле', 'какие-то другие поля которые нужно выводить')