Skip to content
This repository has been archived by the owner on Mar 19, 2020. It is now read-only.

taborprekvapeni/taborprekvapeni.cz

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

taborprekvapeni.cz

Zdrojový kód webu letního dětského tábora s názvem Tábor plný překvapení.

Instalace

  1. Je potřeba Python 3. Přesná verze Pythonu je v souboru runtime.txt.
  2. Je dobré si vytvořit virtualenv.
  3. Do virtualenvu si nainstalujeme závislosti: pip install -r requirements.txt

Vývoj

  1. Spustíme python runserver.py
  2. V prohlížeči jdeme na http://0.0.0.0:5000/

Můžeme dělat změny a pomocí gitu je posílat na GitHub. Pokud si s gitem nechceme hrát v příkazové řádce, můžeme změny provedené na našem lokálním počítači posílat i pomocí klikacího programu GitHub Desktop.

Jak se orientovat v kódu

Aplikace je napsaná ve frameworku Flask. Dělá spoustu zbytečností, protože dřív stahovala automaticky informace z tabory.cz. Toto se dnes již neděje, ale kód, který se o tuto automatiku staral, zde zůstal s námi. Asi by se dal web klidně předělat čistě na statické stránky. Nebo by se data mohla číst alespoň z YAML souborů, a ne složitě parsovat nějaké vlastní výmysly v Markdownu. No, to už je výzva pro další generace...

  • models - Dynamicky získávaná data ze souborů nebo (původně) z internetu (tabory.cz).
  • models/photos.py - Věc, která umí za běhu upravovat a zmenšovat obrázky. V šablonách se používá jako "image proxy".
  • static - Obrázky, CSS, atd.
  • templates - HTML prošpikované vkládanými daty, tzv. šablony. Jazyk šablon je Jinja2.
  • cache.py - Kešování obrázků a dat. Jednou se načtou a web si je chvíli pamatuje, než je načítá znova. Paměť má v adresáři tmp, který si podle potřeby vytváří.
  • templating.py - Nástroje pro šablony.
  • views.py - Samotné jednotlivé stránky (controller).

Nasazení

  • Každý push do master větve na GitHubu spustí automatický build na Heroku.
  • Heroku se podívá, jakou verzi Pythonu má použít. To zjistí ze souboru runtime.txt.
  • Pak začne instalovat závislosti. Ty zjistí z requirements.txt
  • Když to má hotové, podívá se do Procfile, kde zjistí, že má spustit nějaký gunicorn taborprekvapeni:app bla bla bla. Ten spustí/restartuje.
  • Tím jsou změny nasazeny na http://taborprekvapeni.cz

Gunicorn je server, který spustí Python aplikaci a vystaví ji ven. Je to totéž, co ten python runserver.py, akorát že ten je jen na odzkoušení a ladění. Gunicorn je rychlejší a neprůstřelnější, takže se hodí ve chvíli, kdy chceme web opravdu vystavit do světa.

Další věci

  • Přístup na GitHub má @honzajavorek a @brnkamatej
  • Přístup na Heroku má @honzajavorek a @brnkamatej
  • Přístup na taborprekvapeni.cz doménu má @honzajavorek

About

Web letního dětského tábora s názvem Tábor plný překvapení

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •