Блог

"Читать далее" в django

Часто бывает нужно организовать новости, блог, какие-то статьи. Для этого обычно используют небольшой вступительный текст и ссылку “Читать далее”.

Если вы используете HTML-тэги в своих статьях, то заметите, что Django не закрывает их при использовании фильтра truncatewords.

Пример реализации
Если вы хотите запретить HTML-тэги только в этом вступительном тексте, а также картинки, видео и прочее, то можно пойти следующим путем. В необходимом файле шаблона, в требуемой переменной примените фильтр striptags, затем truncatewords, затем safe (для правильной обработки HTML-символов):

{{ news.description|striptags|truncatewords:"30"|safe }}

Получится, например, такой текст - “Как все мы помним, после The International все датские игроки из MYM покинули эту организацию и им на замену была взята команда Scythe.SG. Вчера стало известно, что состав снова претерпел серьезные …”. Протестировано на Django 1.3.

Также, если у вас пробелы представлены в виде  , то приведенный выше метод может не работать. Для решения проблемы используйте фильтр truncatewords_html. Таким образом, код будет вида:

{{ news.description|truncatewords_html:"30"|safe }}

Как видите, мы еще убрали фильтр striptags.

django

Veno ^^

<p>Хехе. Поиграл адекватно веником на доталишесе - заслужил признание в любви, блин))</p>
<p><a href=”/media/uploads/2018/11/09/WC3ScrnShot_030312_020158_01.jpg”><img class=”alignnone size-medium wp-image-149” title=”WC3ScrnShot_030312_020158_01” src=”/media/uploads/2018/11/09/WC3ScrnShot_030312_020158_01.jpg” alt=”” /></a></p>
<p>И результаты игры:</p>
<p><a href=”/media/uploads/2018/11/09/veno_cru_dotalicious.png”><img class=”alignnone size-medium wp-image-150” title=”veno_cru_dotalicious” src=”/media/uploads/2018/11/09/veno_cru_dotalicious.png” alt=”” /></a></p>

игры

Уникальные названия файлов при загрузке в Django

Django при сохранении файла через админку или форму сохраняет название файла. Например, при загрузке картинки "mypic.jpg" она сохранится с этим названием.
Также, если загружаемый файл на русском языке, то его имя будет сохранено - “моя_картинка.jpg”. Вы можете изменить этот механизм.

ПРИМЕЧАНИЕ. Последующие загружаемые файлы с таким названием будут иметь префикс "_", т.е. "_mypic.jpg", "__mypic.jpg" и т.п.

Пример реализации
Этот код должен быть помещен в файл models.py нужного вам приложения.

import os, uuid

def get_file_path(instance, filename):
    ext = filename.split('.')[-1]
    filename = "%s.%s" % (uuid.uuid4(), ext)
    return os.path.join(instance.directory_string_var, filename)

class MyModelFiles(models.Model):
    myimage = models.FileField(upload_to = get_file_path)
    directory_string_var = 'my-path-to-files-for-this-model'

class MyModelImages(models.Model):
    myimage = models.ImageField(upload_to = get_file_path)
    directory_string_var = 'my-path-to-images-for-this-model'

Таким образом, при следующей загрузке файла его имя будет выглядеть, например, так «384408e1-5465-46fd-bf47-61f913fa78e5.jpg».
Протестировано на версии Django 1.3.

django

Table X is marked as crashed and should be repaired

Это ошибка обычно возникает из-за неожиданной перезагрузки СУБД.

В PhpMyAdmin или MySQL-консоли выполните следующий запрос:

REPAIR TABLE `mytable`

где mytable - таблица, указанная в ошибке.

sql

Как получить список заголовков столбцов в модели django

Получаем список всех имен столбцов модели

model_field_names = model._meta.get_all_field_names()

Получаем название модели

model_name = model._meta.getattr()
django

Парсер веб-страниц на Python

Для успешного парсинга страниц достаточно двух инструментов - urllib и BeautifulSoup. Первый обычно доступен сразу после установки python, второй легко можно найти в интернете - http://www.crummy.com/software/BeautifulSoup/bs3/download/

Пример

>>> from BeautifulSoup import BeautifulSoup
>>> import urllib
>>> f = urllib.urlopen('http://my.site') # Открываем сайт, который будем парсить
>>> soup = BeautifulSoup(f.read()) # Считываем его и одновременно закидываем в BeautifulSoup
>>> my = soup.findAll(name='div', attrs={'class': 'news'}) # Ищем все div`ы с классом 'news'
>>> for m in my:
... print m # Выводим их

Результат, например, может быть следующий (если найден только один div):

[u'Содержание статьи 1.']

По шагам

<span>1</span>. Качаем BeautifulSoup.tar.gz, который лежит в корне.

<span>2</span>. Распаковываем gz, затем tar.

<span>3</span>. Копируем в папку (желательно без русских символов и пробелов).

<span>4</span>. Устанавливаем:

 Нажимаем Ctrl+R
 cmd
 cd C:\BeautifulSoup-3.2.1
 python setup.py install

<span>5</span>. Должно успешно установиться. Теперь можем испытать скрипт. Заходим в python:

>>> from BeautifulSoup import BeautifulSoup
>>> import urllib
>>> f = urllib.urlopen('http://my.site') # Открываем сайт, который будем парсить
>>> soup = BeautifulSoup(f.read()) # Считываем его и одновременно закидываем в BeautifulSoup
>>> my = soup.findAll(name='div', attrs={'class': 'news'}) # Ищем все div`ы с классом 'news'
>>> for m in my:
...    print m.findAll(text=True) # Выводим их

<span>6</span>. В результате должны были получить содержимое всех div c классом news.

django

Создание кнопок онлайн

При создании элементов на сайте или в оффлайн-приложениях часто требуется создать красивые кнопки. Для этого существует множество приложений, но нас интересуют сервисы с аналогичным функционалом в интернете. Смотрим и выбираем, кому что нравится.

Da Button Factory

http://dabuttonfactory.com

У этого сайта одна функция - создание кнопок. Настроек не слишком много, но можно просто и быстро создать неплохие кнопочки.

Аналоги

http://css-tricks.com/examples/ButtonMaker - кнопки без изображения (на css3).

http://jirox.net/AsButtonGen - китайский сервис, настроек больше, чем в Da Button Factory, но менее удобен.

Если вы знаете еще какие-либо онлайн-сервисы для создания кнопок, пожалуйста, оставьте их адреса в комментариях.

дизайн

Редактирование изображений онлайн

На сегодняшний день существует множество онлайн-сервисов, которые в окне браузера позволяют делать то, что раньше могли только установленные на компьютере программы. Я не хочу перегружать вас информацией, поэтому буду рассмотривать по одному представителю из каждого направления.

Приступим!

pixlr

https://pixlr.com

Просто нереально мощный и бесплатный сервис для работы с фотографиями. Имеет русскоязычный интерфейс. Его вполне можно позиционировать с онлайн-аналогом фотошопа. На этом сайте доступно несколько сервисов для работы с изображениями. Начнем по порядку.

Editor

https://pixlr.com/editor

Интерфейс Editor’а очень сильно похож на интерфейс программы Paint.Net, т.е. является простым и удобным, но в то же время очень функциональным. Попробуйте, и сами все увидите.

Express

https://pixlr.com/express

Сервис Express требуется для наложения каких-либо эффектов на фотографию, быстрой обрезки или изменения размеров изображения.

O-matic

http://pixlr.com/o-matic

Этот сервис также позволяет накладывать кучу спецэффектов на изображение. С помощью  него можно сделать, например, следующее.

Также, на pixlr.com есть плагины-грабберы для файрфокса и хрома. С помощью них можно через контекстное меню в браузере открыть интернет-картинку сразу для редактирования в pixlr.com. Также есть бесплатный хостинг для изображений. Это не столь интересно, поэтому подробно не рассматриваю.

Аналоги

https://www.thecanvasprints.co.uk/photoeditor

https://www.photoshop.com

http://www.sumopaint.com/app

http://www.phixr.com

http://www.picjuice.com

http://www.lunapic.com/editor

Если вы знаете еще какие-либо онлайн-сервисы для работы с изображениями, пожалуйста, оставьте их адреса в комментариях.

сервисы

Онлайн сервисы редактирования изображений

На сегодняшний день существует множество онлайн-сервисов, которые в окне браузера позволяют делать то, что
раньше могли только установленные на компьютере программы. Я не хочу перегружать вас информацией, поэтому
буду рассмотривать по одному представителю из каждого направления.

Приступим!

pixlr.com

<p><a href="http://pixlr.com” target=”_blank” data-mce-href="http://pixlr.com">http://pixlr.com </a></p><p>Просто нереально мощный и бесплатный сервис для работы с фотографиями. Имеет русскоязычный интерфейс. Его вполне можно позиционировать с онлайн-аналогом фотошопа. На этом сайте доступно несколько сервисов для работы с изображениями. Начнем по порядку.</p><h3>Editor</h3><p><a href="http://pixlr.com/editor” data-mce-href="http://pixlr.com/editor">http://pixlr.com/editor</a></p><p>Интерфейс Editor’а очень сильно похож на интерфейс программы Paint.Net, т.е. является простым и удобным, но в то же время очень функциональным. Попробуйте, и сами все увидите.</p><p><br></p><h3>Express</h3><p><a href="http://pixlr.com/express” data-mce-href="http://pixlr.com/express">http://pixlr.com/express</a></p><p>Сервис Express требуется для наложения каких-либо эффектов на фотографию, быстрой обрезки или изменения размеров изображения.</p><p><br></p><h3>O-matic</h3><p><a href="http://pixlr.com/o-matic” data-mce-href="http://pixlr.com/o-matic">http://pixlr.com/o-matic</a></p><p>Этот сервис также позволяет накладывать кучу спецэффектов на изображение. С помощью  него можно сделать, например, следующее.</p><p><br></p><p>Также, на pixlr.com есть плагины-грабберы для файрфокса и хрома. С помощью них можно через контекстное меню в браузере открыть интернет-картинку сразу для редактирования в pixlr.com. Также есть бесплатный хостинг для изображений. Это не столь интересно, поэтому подробно не рассматриваю.</p><p><strong>Аналоги:</strong></p><p><a href="http://www.flauntr.com/flauntr/index.jsp” data-mce-href="http://www.flauntr.com/flauntr/index.jsp">http://www.flauntr.com/flauntr/index.jsp</a></p><p><a href="http://fotoflexer.comdata-mce-href="http://fotoflexer.com">http://fotoflexer.com</a></p><p><a href="https://www.photoshop.comdata-mce-href="https://www.photoshop.com">https://www.photoshop.com</a></p><p><a href="http://www.sumopaint.com/app” data-mce-href="http://www.sumopaint.com/app">http://www.sumopaint.com/app</a></p><p><a href="http://www.phixr.comdata-mce-href="http://www.phixr.com">http://www.phixr.com</a></p><p><a href="http://www.splashup.comdata-mce-href="http://www.splashup.com">http://www.splashup.com</a></p><p><a href="http://www.picjuice.comdata-mce-href="http://www.picjuice.com">http://www.picjuice.com</a></p><p><a href="http://www.pikipimp.comdata-mce-href="http://www.pikipimp.com">http://www.pikipimp.com</a></p><p><a href="http://www.lunapic.com/editor” data-mce-href="http://www.lunapic.com/editor">http://www.lunapic.com/editor</a></p><p><a href="http://www.alilg.com/software/free-online-photo-editor” data-mce-href="http://www.alilg.com/software/free-online-photo-editor">http://www.alilg.com/software/free-online-photo-editor</a></p><p><a href="http://www.drpic.comdata-mce-href="http://www.drpic.com">http://www.drpic.com</a></p><p><a href="http://www.aviary.comdata-mce-href="http://www.aviary.com">http://www.aviary.com</a> - растровый и векторный редакторы, эффекты, без регистрации.</p><p>Если вы знаете еще какие-либо онлайн-сервисы для работы с изображениями, пожалуйста, оставьте их адреса в комментариях.</p>

сервисы

Вконтакте и брачные игры :D

[23:36:42] Genji: Обмен музыкой вконтакте является частью брачных игр современной молодежи. Чем интенсивнее постинг, тем сильнее половое влечение.Если вы заприметили хорошенькую девушку, но не решаетесь заговорить, киньте ей на стену два-три трека.
[23:36:43] Genji: да? оО
[23:36:53] freeWOLF: да
[23:37:02] Genji: жесть, а я бывало просто так кидал оО
[23:37:10] freeWOLF: ага
[23:37:12] freeWOLF: отмазывайся
[23:37:15] freeWOLF: просто так он кидал
[23:37:25] Genji: ^____^
[23:37:30] freeWOLF: это ты прокурору будеш рассказывать
[23:37:34] freeWOLF: когда её в лесу найдут
[23:37:35] Genji: о_о
[23:37:37] freeWOLF: её труп*

забавное