Tuesday, February 21, 2012

Ставимо Ruby та RoR (продовження)

Ящо ви щось намудрували, або ставили з репозиторія рубі, а потім захотіли обновити, або ще якісь приколи зустріли вас як і мене. То пропоную розглянути наступні граблі з якими я зіткнувся:
1. Пишете rails s, а вам видає:

ruby/1.9.1/rubygems.rb:340:in `bin_path': can't find executable rails for rails-3.2.1 (Gem::Exception)
         .....

рішення:

gem install railties --pre

2. Хочете зайти в консоль ваших рельс rails c, а вам видає:

ruby/1.9.1/irb/completion.rb:9:in `require': no such file to load -- readline (LoadError)
        ......

рішення:
    sudo apt-get install libreadline5-dev
    cd ext/readline #знаходиться в дистрибутиві рубі або
cd ~/.rvm/src/ruby-X.X.X/ext/readline
ruby extconf.rb make sudo make install
3. При спробі запуску того ж сервера рельсів може видавати:
Could not find addressable-2.2.7 in any of the sources
рішення:
        bundle install --path vendor/caches # просто інсталюємо геми в деректорію проекта
Також можливо вам стане в пригоді цей лінк.

Sunday, February 5, 2012

Розширення шаблонів Django

До початку створення філтру потрібно створити каталог templatetags  з файлом __init__.py який вкаже що це папка для пітона і відповідно файл з фільтрами який має мати говорящу назву, оскільки саме з допомогою назви файлу оприділяються наші фільтри в шаблоні, ось так:

{% load ext_filters %} # де ext_filters - це імя нашого файлу
{{ var|cut:"a" }} # це приклад використання фільтру

Власне і вміст нашого файлу:
from django import template
register = template.Library()

@register.filter(name='cut') # можна не вказувати назву філтра, тоді буде 
def cut(value, arg):            взята назва функції
    return  value.replace(arg, '')

таким чином в нашому файлі може визначатись багато фільтрів. Що до каталогу то він повинен бути розміщений в одному із робочих модулів який підключений в INSTALLED_APPS, або може бути венесеней в окремий модуль що також вимагає підключення.

Saturday, February 4, 2012

Роутинг в Django

Старт був тут, а це продовження)
urls.py - забезпечує маршрутизацію. Да-да! Геніально! urls.py - забезпечує маршрутизацію для вашого проекта. Все просто, чи не так?) Як же воно там її забезпечує? - запитаєте ви. А так само просто як і називається файл! - відповім вам я і будь хто інший тоже.

Стартуємо з Django (Консоль)

Це перша із серії заміток по фреймворку Django.
Перше з чим прийдеться стикнутись це консоль, з допомогою якої і створюється новий проект, а також інші команди для полегшення життя. Так створюємо проект:
django-admin.py startproject <name_project> #новий проект


В каталозі який відповідає name_project мали появитись кілька файлів, одним із них є manage.py який досить часто використовується для роботи з нашим проектом з допомогою консолі, ось декілька команд:
python manage.py ...  :
  • startapp <name_module> #новий модуль
  • shell #шел конкретного проекта
  • validate #перевірка валідності моделей
  • sqlall <name_module> #вивід запитів створення конкретної моделі
  • syncdb #виконати запити моделі до БД
  • runserver #запуск тестового сертвера
  • createsuperuser #створення суперкористувача
Також в корні проекта є urls.py що призначений забезпечити маршрутизацію і settings.py для конфігурації нашого проекта, про них буде пізніше. Що до команд з консолі їх є набагато більше і можна це побачити прямо в тій же консолі)))

 
 
Blogger Templates