Чтобы жизнь не казалась легкой и ни к чему не обязывающей я решил освоить питон с джангой. Давно я к нему примерялся, особенно после всяких обидных сравнений с пхп. И вот у меня накопились вопросы к уважаемым экспертам:
Создал приложение content которое берет из базы записи типа [name, code, parent, content] и генерит для них url’ы
вот я подключаю из /mysite/urls.py генератор урлов из приложения:
urlpatterns = patterns('',
url(r'^', include('content.urls', namespace='content'))
)
далее в /content/urls.py генерю сами урлы
elements = ContentElements.objects.all()
def buildUrl(el):
path = el.code
if el.parent:
path = buildUrl(el.parent)+'/'+path
return path
for el in elements:
path = buildUrl(el)
urlpatterns.append(url(r'^'+path+'/$', views.show, name='content_'+el.code))
В итоге получается примерно такая ебалайка:
^ ^test/$ [name='content_1_test']
^ ^test/test_content/$ [name='content_2_test_content']
^ ^bitrix/$ [name='content_3_bitrix']
^ ^bitrix/modules_generator/$ [name='content_4_modules_generator']
Вроде все работает но жопой чувствую что-то сделал коряво. Сама регулярка какая-то уебищная получается. Как делать правильно?
Второй вопрос больше из теории. Вот я открываю админку джанги, и добавляю в базу новую запись для приложения content. Пдалее пытаюсь открыть свежесозданную страницу и нихуя! Появляется она только если перезапустить сервер. Походу синтерпретированный код висит в памяти пока не перезагрузишь сервер, как с этим бороться?
Третий вопрос про работу с массивами ой блять простите списками.
Вот есть такое гавно:
test = []
test[0].append('test')
Кэп будет ругаться что такого индекса нет. Ума хватает только на такой пиздец:
test = [0: {}]
test[0].append('test')
Как в питоне правильно и красиво присваивать индексы?