CategoryPython

Geolokalizace IP adresy

Z důvodů pořešení nějakých bezpečnostních praktik jsem potřeboval nějak blíže geolokalizovat IP přihlašovaného uživatele, respektive záškodníka, abych věděl odkud se fyzicky přihlašuje:

NodeJS: geolokalizace IP adresy

Python: geolokalizace IP adresy

Vypnutí kešování www stránek

Někdy budete muset na úrovni HTML hlaviček vypnout kešování požadované stránky (cache). Důvod je zřejmý: měnící se obsah a snaha o zajištění distribuce aktuálního obsahu. Pak by se mohlo hodit info jak na to.

Nejdřív finta…

Možná nejjednodušším řešením jak zamezit kešování je změna adresy v samotném odkazu na stránku, kterou nechcete kešovat:

Ze serveru se generuje stránka, která obsahuje pokaždé jiný odkaz. Ten se mění díky vkládání časového razítka přímo do URL odkazu a proto bude stránka po každé znovu načtena…

A nebo pak jinak…

HTML

NodeJS

PHP

Python s Flaskem

Nginx

Apache .htaccess

Python Succinctly

python

Python Succinctly (PDF)

main v Pythonu a NodeJS

V Pythonu, stejně jako v NodeJS, můžete elegantně rozdělit kód aplikace do modulů (chcete-li balíčků) a ty pak můžete jednoduše importovat v jiné části aplikace.
Python:

NodeJS:

Protože NodeJS i Python jsou scriptovací jazyky, můžete modul spouštět přímo pod runtimem, a pak se hodí identifikovat, zda modul jen importujete, nebo jej přímo spouštíte.
To je v Pythonu úplně běžná praxe a dělá se následovně:

Ona podmínka testuje, zda je modul spouštěn přímo interpretem. Klasika a úplný základ v Pythonu.

__main__ v NodeJS

A tohoto chováni lze dosáhnout i v NodeJS následně:

Modul exportuje funkci nejaka_fce, která může být importována jiným modulem a vedle toho má privátní funkci main, kterou nelze v jiném modulu importovat (je privátní v rámci daného modulu), ale tato fuknce se vykoná, pokud je modul spuštěn přímo interpretem.
NodeJS nemá __name__, ale interní proměnnou require.main, která v případě, že script je spuštěn přímo interpretem a ne includován, obsahuje object module.
NodeJS má globální proměnou __filename, které ale obsahuje název souboru (s absolutní cestou), ale neidentifikuje, zda je soubor spouštěn interpretem.

Python dokumentace

Building Web Applications with Flask
Flask Web Development
Flask Framework Cookbook
Python

Python syntax checking

Jednoduchý způsob jak otestovat jestli je váš python script ok:

py_compile

Pylint

Pylint poskytuje opravdu detailní info o vašem scriptu.

PEP8

PEP8 je utility, která vám pomůže zjistit, jestli je váš kód kompatabilní se specifikací PEP8.

PEP8 online

Na PEP8 online můžete příme ve webovém prohlížeši otestovat validitu vašeho kódu.

© 2017 pepa.holla.cz

Theme by Anders NorénUp ↑