Skip to content
This repository was archived by the owner on Feb 28, 2024. It is now read-only.

Files

Latest commit

author
Andrey Tatarinov
Aug 13, 2010
4d05ee6 · Aug 13, 2010

History

History
64 lines (42 loc) · 2.47 KB

version-migration-guide.md

File metadata and controls

64 lines (42 loc) · 2.47 KB

0.21.8 → 1.0.0rc1

В этой версии добавлена важная функциональность по поддержке больше чем одного приложения внутри фронтика. Так как до этого момента все фронтики обслуживали ровно одно приложение, то миграция сводится к следующему:

Старый /etc/frontik/frontik.cfg:

...
document_root = "/home/hh/hh.ru/xhh"
app_package = "frontik_www"

Новый:

...
apps = {
     "page": "/home/hh/hh.ru/xhh/frontik_www",
}

Интерпретация URL'ов

apps - отображение URL-префиксов на путь в файловой системе. Т.е. в при запросе к фронтику вида: /page/applicant/searchvacancyresult/ будет использоваться строка конфига "page": "/home/hh/hh.ru/xhh/frontik_www" и для обработки запроса будет использоваться класс Page из файла /home/hh/hh.ru/xhh/frontik_www/page/applicant/searchvacancyresult.py

Импортирование модулей внутри приложения

С переходом на версию 0.22 встроенная python-инструкция import перестает работать для модулей внутри приложения (т.к. import ожидает глобальную уникальность имен модулей, чего мы не можем гарантировать для множественных приложений).

Поэтому введена новая глобальная функция, которая автомагически доступна во всех модулях приложений: frontik_import(module_name).

Миграция:

from frontik_www import utils
import frontik_www.banners as banners

в:

frontik_import('utils')
frontik_import('banners')

Перестало поддерживаться 1:

import frontik_www.banners
...
frontik_www.banners.do_banners(...)

надо:

frontik_import('banners')
...
banners.do_banners(...)

Перестало поддерживаться 2:

from frontik_www.page import session
...
@session

надо:

frontik_import('page')
...
@page.session