def __getitem__(self, k):
if not isinstance(k, (slice,) + six.integer_types):
raise TypeError
assert ((not isinstance(k, slice) and (k >= 0)) or
(isinstance(k, slice) and (k.start is None or k.start >= 0) and
(k.stop is None or k.stop >= 0))), \
"Negative indexing is not supported."
if self._result_cache is not None:
return self._result_cache[k]
if isinstance(k, slice):
qs = self._clone()
if k.start is not None:
start = int(k.start)
else:
start = None
if k.stop is not None:
stop = int(k.stop)
else:
stop = None
qs.query.set_limits(start, stop)
return list(qs)[::k.step] if k.step else qs
qs = self._clone()
qs.query.set_limits(k, k + 1)
return list(qs)[0]
<div id="introR" class="super_back"><canvas id="pollyfill-canvas"></canvas></div>
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models
class Category(models.Model):
name = models.CharField(max_length=32, verbose_name='Наименование')
class Meta:
verbose_name = 'Категорию'
verbose_name_plural = 'Категории'
def __unicode__(self):
return unicode(self.name)
def __str__(self):
return self.__unicode__()
Может ли какой-либо контент сайта\страницы вылезать за рамки окна в браузере?
Допустим, что-нибудь может оказаться на месте закладок, или там, где вкладки какая-то надпись. Или же на иконке "Закрыть".
$scope.choiceFile = () ->
partsName = $scope.file.name.split('.')
partsName.pop()
$scope.file.humanName = partsName.join('.')
$scope.file = _.extend $scope.file,
progress: 0
isUploading: false
isError: false
isComplete: false
$scope.uploadFile = (file) ->
file.isUploading = true
Upload.upload(
url: '/api/file/'
data:
file: file
param1: 1
param2: 2
).then( (resp) ->
file.isComplete = true
console.log "успешно загружен #{file.name}"
, (resp) ->
file.isError = true
console.log "Ошибка при загрузке #{file.name}"
, (evt) ->
file.progress = parseInt(100.0 * evt.loaded / evt.total)
)
<button ngf-select
class="btn btn-info hidden-lg hidden-md"
accept="*/*"
ngf-pattern="*/*"
ngf-change="choiceFile()"
ng-model="file">
Choice to upload
</button>
так как верю в то,что понимая математику я буду преуспевать во всем другом
Как определить уровень знаний сейчас?
Что решать/учить/конспектировать?Откуда брать материал?
Так же занимаюсь html+css
from datetime import timedelta
from django.db import models
from django.utils import timezone
class Settings(models.Model):
"""
Модель настроек с интерфейсом атрибутов
>>> settings.hello = 'world'
Сохранит модель с key='hello' и value='world'. Если модель с таким ключом до этого
существовала (т.е. в данный момент мы меняем значение), запись в БД поменяется и кэш
инвалидируется.
>>> settings.hello
'world'
Получение ключа. Сначала ищет в кэше. Если находит - возвращает, если нет,
ищет в БД запись с таким ключом (hello). Если находит - кладёт в кэш и возвращает.
>>> del settings.hello
Удаляет запись с ключом hello из БД и кэша.
Также, ключ и значение можно редактировать из админки (кэш в этом случает также
инвалидируется)
Пример куска вьюхи, которая может редактировать настройки сайта:
if form.is_valid():
settings.phone = form.cleaned_data['phone']
settings.address = form.cleaned_data['address']
"""
key = models.CharField(max_length=255, primary_key=True)
value = models.TextField()
__cache_ttl = 60 * 60
__cache = {}
__cache_max_size = 300
def save(self, *args, **kwargs):
super(Settings, self).save(*args, **kwargs)
self._cache_invalidate(self.key)
def __setattr__(self, key, value):
cls = type(self)
try:
instance = cls.objects.get(key=key)
instance.value = value
instance.save()
except cls.DoesNotExist:
cls.objects.create(key=key, value=value)
self._cache_invalidate(key)
def __getattr__(self, key):
value = self._cache_get(key)
if value is None:
cls = type(self)
try:
value = cls.objects.get(key=key).value
self._cache_set(key, value)
except cls.DoesNotExist:
value = None
return value
def __delattr__(self, key):
type(self).objects.filter(key=key).delete()
self._cache_invalidate(key)
def _cache_set(self, key, value):
if len(self.__cache) < self.__cache_max_size:
self._cache_force_set(key, value)
else:
self._cache_remove_old()
if len(self.__cache) < self.__cache_max_size:
self._cache_force_set(key, value)
def _cache_force_set(self, key, value):
self.__cache[key] = (
value,
timezone.now() + timedelta(seconds=self.__cache_ttl)
)
def _cache_get(self, key):
result = self.__cache.get(key)
if result[1] > timezone.now():
self._cache_invalidate(key)
return None
return result[0]
def _cache_invalidate(self, key):
del self.__cache[key]
def _cache_remove_old(self):
now = timezone.now()
for k, v in self.__cache.items():
if v[1] < now:
self._cache_invalidate(k)
settings = Settings()
def settings(request):
return {'settings': settings}
<title>{{ settings.title }}</title>
непонятные методы вроде socket(),listen()
В какой книге описывается все эти методы,этот синтаксис (значок $ был для меня сюрпризом) описывается?
$ ./manage.py migrate
== запустить комманду ./manage.py migrate
от имени пользователя# apt-get install python-dev
== запустить комманду apt-get install python-dev
от root from django.db.models import Count
Users.objects.values('country').annotate(num=Count('country')).order_by('-num')