Pythonã§Webã¢ããªã±ãŒã·ã§ã³ãéçºããŠã¿ãã
Pythonã¯æ©æ¢°åŠç¿ãçµ±èšã ãã§ã¯ãªãWEBã¢ããªã±ãŒã·ã§ã³éçºã«ãåºã䜿çšãããŠããŸãã Pythonã䜿çšããŠWEBã¢ããªã±ãŒã·ã§ã³ãéçºããããã®æé ãç¥ã£ãŠããã¹ãããšã解説ããŸããPythonã¯éåžžã«äººæ°ã®ããããã°ã©ãã³ã°èšèªã§ãããæ©æ¢°åŠç¿ãçµ±èšã ãã§ã¯ãªãWEBã¢ããªã±ãŒã·ã§ã³éçºã«ãåºã䜿çšãããŠããŸãã
ãã¬ãŒã ã¯ãŒã¯ã掻çšããããšã§ãWEBã¢ããªã±ãŒã·ã§ã³ãçæéã§éçºããäºãå¯èœã§ãã
ãã®èšäºã§ã¯ãPythonã䜿çšããŠWEBã¢ããªã±ãŒã·ã§ã³ãéçºããããã®åºæ¬çãªæé ãç¥ã£ãŠããã¹ãããšã解説ããŸãã
以äžã®ã¬ã€ãã«èšèŒãããŠããå 容ã«ã€ããŠããããåŠç¿ãæ·±ããPythonã§WEBã¢ããªã±ãŒã·ã§ã³ãäœæããŠã¿ãŸãããã
Pythonã®ã€ã³ã¹ããŒã«ãéçºç°å¢ã®æºå
æåã«Pythonã®ææ°ããŒãžã§ã³ãå ¬åŒãŠã§ããµã€ãããããŠã³ããŒãããŠã€ã³ã¹ããŒã«ããŸããWindowsãMacãªã©ã䜿ãã®OSã«åã£ãPythonãããŠã³ããŒãããŠãã ããã
éçºç°å¢ãšããŠããã¹ããšãã£ã¿ãçµ±åéçºç°å¢ïŒIDEïŒãã€ã³ã¹ããŒã«ããŸãã
ããã€ãçš®é¡ããããŸãã®ã§ãã奜ã¿ã®ãã®ãéžæããŠãã ãããIDEãšããŠã¯Visual Studio CodeãPyCharmã人æ°ã§ãã
Visual Studio Code: 軜éãªããã¹ããšãã£ã¿ã§ãããæ¡åŒµæ©èœã®è±å¯ããç¹åŸŽãPythonã ãã§ãªããè€æ°ã®ããã°ã©ãã³ã°èšèªã«å¯Ÿå¿ã䜿ããããã€ã³ã¿ãŒãã§ãŒã¹ãšé«éãªããã©ãŒãã³ã¹ãæäŸããè±å¯ãªãããã°ãµããŒããšGit飿ºãé
åã
https://code.visualstudio.com/
PyCharm: JetBrainsãéçºããPythonå°çšã®çµ±åéçºç°å¢ãPythonéçºã«ç¹åããé«åºŠãªæ©èœãéçºæ¯æŽãæäŸããŠãããã³ãŒãè£å®ããããã¬ããã¹ãã©ã³ããŒãªã©ã®æ©èœãå
å®ããä»®æ³ç°å¢ã®ãµããŒãããªãã¡ã¯ã¿ãªã³ã°æ©èœã匷åããããžã§ã¯ã管çãé«åºŠãªãšãã£ã¿æ©èœãæäŸããŠããã
https://www.jetbrains.com/ja-jp/pycharm/
WEBãã¬ãŒã ã¯ãŒã¯ã®éžæ
Pythonã«éãããWEBã¢ããªã±ãŒã·ã§ã³ãéçºããéã«ã¯WEBãã¬ãŒã ã¯ãŒã¯ã䜿çšããããšãäžè¬çã§ãã
WEBãã¬ãŒã ã¯ãŒã¯ã¯ãã«ãŒãã£ã³ã°ãããŒã¿ããŒã¹æ¥ç¶ããã³ãã¬ãŒããšã³ãžã³ãªã©ãWEBã¢ããªã±ãŒã·ã§ã³éçºã«å¿
èŠãªæ©èœãæäŸããŠãããŸãã
Pythonã«ã¯å€ãã®åªããWEBãã¬ãŒã ã¯ãŒã¯ããããŸãã人æ°ã®ãããã¬ãŒã ã¯ãŒã¯ãšããŠã¯ãDjangoãFlaskãFastAPIãªã©ããããŸãããããžã§ã¯ãã®èŠä»¶ã«åãããŠé©åãªãã¬ãŒã ã¯ãŒã¯ãéžæããŸãããã
Django: Pythonã®æã人æ°ã®ããWEBãã¬ãŒã ã¯ãŒã¯ãå
æ¬çãªæ©èœã»ãããšåªããããã¥ã¡ã³ããæäŸããå€§èŠæš¡ãªãããžã§ã¯ããé«åºŠãªèŠä»¶ã«é©ããŠããã
https://www.djangoproject.com/
https://techplay.jp/tag/django
Flask: ã·ã³ãã«ã§è»œéãªWEBãã¬ãŒã ã¯ãŒã¯ãæ¡åŒµæ§ããããå¿
èŠãªæ©èœãèªç±ã«è¿œå ã§ãããåŠç¿ã³ã¹ããäœããå°èŠæš¡ãªãããžã§ã¯ãããããã¿ã€ãéçºã«é©ããŠããã
https://flask.palletsprojects.com/en/2.3.x/
https://techplay.jp/tag/flask
FastAPI: é«éãªããã©ãŒãã³ã¹ãšçŸä»£çãªAPIéçºã«ç¹åããWEBãã¬ãŒã ã¯ãŒã¯ãã¿ã€ãã³ã°ã¢ãããŒã·ã§ã³ãèªåããã¥ã¡ã³ããŒã·ã§ã³ã掻çšããéåæåŠçãé«ãã¹ã«ãŒããããå®çŸãããAPIéçºããã€ã¯ããµãŒãã¹ã«é©ããŠããã
https://fastapi.tiangolo.com/ja/
ãããžã§ã¯ãã®ã»ããã¢ãã
éžãã WEBãã¬ãŒã ã¯ãŒã¯ã®ããã¥ã¡ã³ãã«åŸã£ãŠãæ°ãããããžã§ã¯ããäœæããŸãããã
ãããžã§ã¯ãã®ã»ããã¢ããã§ã¯ãå¿
èŠãªãã£ã¬ã¯ããªæ§é ããã¡ã€ã«ãèªåçã«çæãããŸãããŸãããããžã§ã¯ãåºæã®ããã±ãŒãžã管çããããšãå¿
èŠã§ãã
å€ãã®ãã¬ãŒã ã¯ãŒã¯ã§ã¯ããã¥ã¡ã³ãããã¥ãŒããªã¢ã«ã®æåã®æ¹ã§ãããžã§ã¯ãã®ã»ããã¢ããã«ã€ããŠè§£èª¬ããŠããŸãã
äŸïŒã¯ãããŠã® Django ã¢ããªäœæããã® 1
https://docs.djangoproject.com/ja/4.2/intro/tutorial01/
ã«ãŒãã£ã³ã°ã®èšå®
WEBã¢ããªã±ãŒã·ã§ã³ã§ã¯ãURLãšã¢ã¯ã»ã¹ããããšãã«å®è¡ããã颿°ã®ãããã³ã°ãå®çŸ©ããå¿ èŠããããŸãããã¬ãŒã ã¯ãŒã¯ã®ããã¥ã¡ã³ããåèã«ããªãããã«ãŒãã£ã³ã°ãèšå®ããŸããããããã«ãããç°ãªãURLã«å¯ŸããŠé©åãªåŠçãè¡ãããŸãã
ãã³ãã¬ãŒãã®äœæ
â»ããã§ã¯Djangoã®MTVã¢ãŒããã¯ãã£ãåºæºã«ããŠããŸãã
å€ãã®WEBã¢ããªã±ãŒã·ã§ã³ã§ã¯ãHTMLãã³ãã¬ãŒãã䜿çšããŠãŠãŒã¶ãŒã«è¡šç€ºããã³ã³ãã³ããäœæããŸãã
ãã³ãã¬ãŒãã«ã¯ãåçãªããŒã¿ãçµã¿èŸŒãããšãã§ãããããåçãªWEBããŒãžãäœæããéã«éåžžã«åœ¹ç«ã¡ãŸãã
ãã¬ãŒã ã¯ãŒã¯ã®ãã³ãã¬ãŒããšã³ãžã³ã䜿çšããŠãã³ãã¬ãŒããäœæããå¿
èŠãªããŒã¿ãé©åã«åã蟌ã¿ãŸãããã
ãã¥ãŒã®äœæ
â»ããã§ã¯Djangoã®MTVã¢ãŒããã¯ãã£ãåºæºã«ããŠããŸãã
ãã¥ãŒïŒViewïŒã¯ããŠãŒã¶ãŒã®ãªã¯ãšã¹ããåŠçããå¿
èŠãªããŒã¿ãåéãããã³ãã¬ãŒãã«æž¡ã圹å²ãæãããŸãããã¬ãŒã ã¯ãŒã¯ã®ããã¥ã¡ã³ãã«åŸã£ãŠãã¥ãŒãäœæããŸãããã
ãã¥ãŒã¯ã«ãŒãã£ã³ã°ã«ãã£ãŠåŒã³åºããã颿°ãã¯ã©ã¹ãšããŠå®çŸ©ãããŸãã
ããŒã¿ããŒã¹ã䜿çšãã
å€ãã®WEBã¢ããªã±ãŒã·ã§ã³ã§ã¯ãããŒã¿ããŒã¹ã䜿çšããŠããŒã¿ã®æ°žç¶åã管çãè¡ããŸãã
ãã¬ãŒã ã¯ãŒã¯ã«ãã£ãŠã¯ãããŒã¿ããŒã¹ã®æ¥ç¶ãã¢ãã«ã®å®çŸ©ããµããŒãããŠããå ŽåããããŸãã
ããŒã¿ããŒã¹ã®èšå®ãšå¿
èŠãªã¢ãã«ãå®çŸ©ããããŒã¿ããŒã¹ãšã®ããåããè¡ãããã®ã¯ãšãªãORMïŒãªããžã§ã¯ãé¢ä¿ãããã³ã°ïŒã䜿çšããŠããŒã¿ãæäœããŸãããã
éçãã¡ã€ã«ã®ç®¡ç
WEBã¢ããªã±ãŒã·ã§ã³ã§ã¯CSSãJavaScriptãç»åãªã©ã®éçãã¡ã€ã«ã䜿çšããããšãäžè¬çã§ãã
ãããã®ãã¡ã€ã«ãé©åã«ç®¡çããããã³ããšã³ãã®ãã¶ã€ã³ããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ãåäžãããŸãããã
ãã¬ãŒã ã¯ãŒã¯ã«ãã£ãŠã¯ãéçãã¡ã€ã«ã®ãã£ã¬ã¯ããªæ§é ãURLã®ãããã³ã°ãèªåçã«æ±ã£ãŠãããæ©èœãæäŸããŠããå ŽåããããŸãã
ãã¹ããšãããã°
WEBã¢ããªã±ãŒã·ã§ã³ã®å質ã確ä¿ããããã«ããã¹ããšãããã°ã¯éåžžã«éèŠã§ãããã¬ãŒã ã¯ãŒã¯ã«ã¯ããã¹ããã¬ãŒã ã¯ãŒã¯ããããã°ããŒã«ãçµã¿èŸŒãŸããŠããå ŽåããããŸãã
ãã¹ãã±ãŒã¹ãäœæããã¢ããªã±ãŒã·ã§ã³ã®åäœã確èªãããã°ããšã©ãŒãç¹å®ããŠä¿®æ£ããŸãããã
ãã¹ããšãããã°ã®ããã»ã¹ã¯ãã¢ããªã±ãŒã·ã§ã³ã®å®å®æ§ãšä¿¡é Œæ§ãåäžãããããã«ãšãŠãéèŠã§ãã
Pythonã®ãŠããããã¹ãã«ã€ããŠã¯äžèšã®èšäºããåç §ãã ããã
Pythonã§unittestã䜿çšããŠãŠããããã¹ãã宿œãã
https://techplay.jp/column/1677
ãããã€
éçºãããã¢ããªã±ãŒã·ã§ã³ãå®éã®ã€ã³ã¿ãŒãããäžã®ãµãŒããŒã«é 眮ãããŠãŒã¶ãŒãã¢ã¯ã»ã¹ã§ããããã«ããããã»ã¹ããããã€ãšåŒã³ãŸãã以äžã«ãããã€ã®äž»ãªã¹ãããã説æããŸãã
ãµãŒããŒã®éžæ: ã¢ããªã±ãŒã·ã§ã³ããããã€ããããã«ã¯ãå®è¡ç°å¢ãšããŠé©åãªãµãŒããŒãéžæããå¿ èŠããããŸããã¯ã©ãŠããããã€ããŒïŒäŸ: AWSãGoogle CloudïŒãå°çšãµãŒããŒãä»®æ³ãã©ã€ããŒããµãŒããŒïŒVPSïŒãªã©ãå©çšãããŸãã
ç°å¢ã®ã»ããã¢ãã: ãµãŒããŒäžã§ã¢ããªã±ãŒã·ã§ã³ãå®è¡ããããã«å¿ èŠãªç°å¢ãã»ããã¢ããããŸããããã«ã¯å¿ èŠãªãœãããŠã§ã¢ïŒäŸ: PythonãWebãµãŒããŒïŒã®ã€ã³ã¹ããŒã«ãäŸåé¢ä¿ã®ç®¡çãããŒã¿ããŒã¹ã®èšå®ãªã©ãå«ãŸããŸãã
ã¢ããªã±ãŒã·ã§ã³ã®é 眮: ãããã€ããã¢ããªã±ãŒã·ã§ã³ã®ã³ãŒãããªãœãŒã¹ããµãŒããŒã«é 眮ããŸããããã«ã¯ããœãŒã¹ã³ãŒããèšå®ãã¡ã€ã«ãéçãã¡ã€ã«ïŒCSSãJavaScriptãç»åãªã©ïŒã®ã¢ããããŒããå«ãŸããŸãã
ãµãŒããŒã®èšå®: ãµãŒããŒã®èšå®ã調æŽããŠãã¢ããªã±ãŒã·ã§ã³ãæ£ããåäœãããå¿ èŠããããŸããããã«ã¯ããã¡ã€ã³åã®èšå®ãããŒãã®èšå®ãSSL/TLSèšŒææžã®ååŸãWebãµãŒããŒã®èšå®ãªã©ãå«ãŸããŸãã
ãããã€ã®æ¹æ³ã¯ããã¬ãŒã ã¯ãŒã¯ããã¹ãã£ã³ã°ãããã€ããŒã«ãã£ãŠç°ãªããŸãã
åããã¥ã¢ã«ãåèã«ããŠé©åãªãããã€ã¡ã³ãæ¹æ³ãéžæããã¢ããªã±ãŒã·ã§ã³ãå
¬éããŸãããã
ãŸãšã
Pythonã䜿çšããŠWEBã¢ããªã±ãŒã·ã§ã³ãéçºããããã®æ¹æ³ãã玹ä»ããŸããã
å®éã«WEBã¢ããªã±ãŒã·ã§ã³ãäœæããŠäžã«åºãããã«ã¯ãããã«çްããäœæ¥ãèšå®ãå¿
èŠãšãªããŸãã
PythonãWEBãã¬ãŒã ã¯ãŒã¯ã¯å€ãã®ããšãæäŸããŠãããŸãããããããã®ã¹ãããã«ã€ããŠã¯ããæ·±ãåŠç¿ããŠãããŸãããããŸããéçºã«ãããŠã¯ããã¥ã¡ã³ãã®åç
§ãã³ãã¥ããã£ã®æ¯æŽã掻çšããããšãéèŠã§ãã
WEBã¢ããªã±ãŒã·ã§ã³ããããã€ããåŸã¯ã»ãã¥ãªãã£ãããã©ãŒãã³ã¹ã®æé©åãªã©ãã¢ããªã±ãŒã·ã§ã³ã®æ¹åã«ãç¶ç¶çã«åãçµãã§ããããšãå¿
èŠã§ãã
ãŠãŒã¶ãŒäœéšã®åäžãããžãã¹ã®ææã«ã€ãªããåªããWEBã¢ããªã±ãŒã·ã§ã³ã®éçºãç®æããŸãããã











