
PythonFlaskã«ããWebã¢ããªéçºå ¥éâ æžç±ç޹ä»ãç°å¢æŽå
Webã¢ããªéçºãé²ããã
æ¢ã«å¥ã§æžããããã«ãèªç¶èŸ²æ³ãå€§èŠæš¡åããããã«ãæ¥åã¢ããªãéçºããã¹ãã«ãç¥èã倿§ãªæ œå¹äœç©ã®å¹ççãªç®¡çãããããšæããŸãã
Python+JSONã®webã¢ããªéçº
AWS+Pythonã§ãµãŒãã¬ã¹ã¢ããªéçº
ããã§JSONã®åŠç¿ãšããµãŒãã¬ã¹ã¢ããªã®åŠç¿ã§ãããã䜿çšããFlaskãšããWebã¢ããªéçºãã¬ãŒã ã¯ãŒã¯ã«ã€ããŠããã£ããå匷ããå¿ èŠããããšå€æããŸããã®ã§ãããã§éç¹ã眮ããŠåŠç¿ããŠãããããšæããŸãã
ä»åã®åè峿ž
ä»åã¯äžã®ãããªæžç±ã§webã¢ããªéçºãç·Žç¿ããŠãããããšæããŸãã

æžåºãžè¡ã£ãŠFlaskã«é¢ããæ¬ãæ€èšããçµæããã®æ¬ãè³Œå ¥ããŸããããã£ãšãããã®ããããããããŸãããã人ã«ãã£ãŠããããããæ¬ã¯éããšæããŸãã®ã§ããã²æžåºã«ãŠæãçžæ§ã®ããæžç±ããæ€èšãã ããã
ç°å¢ã®æ§ç¯
æ¬æžã¯ç¬¬0éšã§Webã¢ããªéçºãè¡ãããã®ç°å¢æŽåãè¡ããŸããç§ã¯æå
ã®Chromebookã«ä»®æ³Linuxç°å¢ãæ§ç¯ããæ¬æžãé²ããããã«VScodeã䜿ã£ãŠã³ãŒããåããªããå匷ããŠãããããšæããŸãã
æã¡éã³ãããã¿ããããã«ã§æäœã§ãããããç°¡åãªããã°ã©ã ã®ç·Žç¿ã«ã¯ããChromebookã䜿ã£ãŠããŸãïŒãã5幎ãããåã®ãã·ã³ã§ãïŒã
â ä»®æ³ç°å¢(venv)ã«Flaskãã€ã³ã¹ããŒã«

â¡VScodeã®ã€ã³ã¹ããŒã«
äžèšã®ãµã€ãã§Linuxåãã®.debãã¡ã€ã«ãããŠã³ããŒãããŸãã

ã€ã³ã¹ããŒã©ãLinuxä»®æ³ç°å¢ã«ç§»ããŠã以äžã®ã³ãã³ãã§ã€ã³ã¹ããŒã«ããŸããã
sudo apt install <ããŠã³ããŒããããã¡ã€ã«ã®ãã¹.deb>â¢VScodeã«Pythonãªã©ãã€ã³ã¹ããŒã«
æ¡åŒµæ©èœã§Pythonãæ€çŽ¢ããŸãã

ãªãããã¹ãã§ã¯ã©ã€ãã©ãªãšããŠã³ãŒããã§ãã«ãŒãšãã©ãŒããã¿ãŒãpipã§ã€ã³ã¹ããŒã«ããŠããã®ãŸãŸVScodeã®èšå®ã«åæ ããŠãããŸãããææ°ã®VScodeã§ã¯Pyhtonæ¡åŒµæ©èœãšåãããã«ãflake8ãããblackãããisortãããmypyããã€ã³ã¹ããŒã«ããããã«å€ãã£ãŠããŸãã
flake8ïŒã³ãŒããã§ãã«ãŒïŒã®ã€ã³ã¹ããŒã«
æ¡åŒµæ©èœã§flake8ãæ€çŽ¢ããŸãã

blackïŒãã©ãŒããã¿ãŒïŒã®ã€ã³ã¹ããŒã«
æ¡åŒµæ©èœã§blackãæ€çŽ¢ããŸãã

isortïŒãã©ãŒããã¿ãŒïŒã®ã€ã³ã¹ããŒã«
æ¡åŒµæ©èœã§isortãæ€çŽ¢ããŸãã

mypyïŒã³ãŒããã§ãã«ãŒïŒã®ã€ã³ã¹ããŒã«
æ¡åŒµæ©èœã§mypyãæ€çŽ¢ããŸãã

ããã¹ãã§ããããã®ã³ãŒããã§ãã«ãŒã»ãã©ãŒããã¿ãŒãæå¹ã«ããèšå®ãããŠããŸãããã€ã³ã¹ããŒã«ããããšã§ãããããèªåçã«Enableã«ãªã£ãŠããŸãã®ã§ã
ãPylintãç¡å¹ã«ããããšã1è¡ã®æå€§æåæ°ã倿Žã«ãããããblackãèšå®ããããããã¡ã€ã«ä¿åæã«isortãèªåã§å®è¡ãããããã«èšå®ãããããmypyã®èšå®ããããã ãã§OKã§ããã
Pylintãç¡å¹ã«ãã
æ¯è»ããŒã¯ããsettingâworkplaceã«å€æŽããŠãããPylint:Enabledããæ€çŽ¢ããŠããã§ãã¯ãå€ããŠç¡å¹ã«ããŸãã

1è¡ã®æå€§æåæ°ã倿Žã«ãã
æ¯è»ããŒã¯ããsettingâworkplaceã«å€æŽããŠãããFlake8Flake8:Argsããæ€çŽ¢ããŠãAdd itemãã¯ãªãã¯ããŠã--max-line-length=88ãå ¥åããŠEnterãæŒããŸãã

blackãèšå®ãã
æ¯è»ããŒã¯ããsettingâworkplaceã«å€æŽããŠãããFormatting:Providerããæ€çŽ¢ããŠããã«ããŠã³ãªã¹ãã§Black Formatterã«å€æŽããŸãã

ãã¡ã€ã«ä¿åæã«isortãèªåã§å®è¡ãããããã«èšå®ãã
æ¯è»ããŒã¯ããsettingâworkplaceã«å€æŽããŠãããEditor:Code Action On Saveããæ€çŽ¢ããŠãEdit in settings.jsonãã¯ãªãã¯ããŸãã

äžå³ã®ããã«"source.organizeImports":trueãå ¥åããŸãã

â£.gitignoreãäœæ
ããã¹ãã§ç޹ä»ãããŠããæ¹æ³ã¯curlã³ãã³ããäœ¿ãæ¹æ³ã ã£ãã®ã§ãããç§ã¯ãªãã.gitignoreã空ã®ãŸãŸã ã£ãã®ã§ã以äžã®URLã«ã¢ã¯ã»ã¹ããŠè¡šç€ºãããããã¹ãã.gitignoreã«ã³ããŒïŒããŒã¹ãããŠäœæããŸããã
http://www.gitignore.io/api/python,flask,vscode


次åã¯ç¬¬1éšãèŠãŠãããŸã
ããŠæ¬¡åããã¯å®éã«Flaskã䜿ã£ãWebã¢ããªã®äœæãç·Žç¿ããŠãããã°ãšæããŸãããèªã¿ããã ãããããšãããããŸããã