Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Python Engineer First Book

hsekine
November 09, 2017

Python Engineer First Book

Python Engineer First Book

hsekine

November 09, 2017
Tweet

More Decks by hsekine

Other Decks in Technology

Transcript

  1. PythonΤϯδχΞ
    ϑΝʔετϒοΫ
    2017/11/08 ؔࠜ༟ل
    ΈΜͳͷPythonษڧձ#30

    View Slide

  2. ࣗݾ঺հ
    • ؔࠜ༟ل
    • גࣜձࣾSQUEEZE
    • ຽധɺཱྀؗɺࣗࣾϗςϧͷӡӦ
    • ॓ധࣄۀऀ޲͚ͷαʔϏε
    • Twitter: @checkpoint

    View Slide

  3. ίϛϡχςΠ׆ಈ
    • PyCon JP 2014 ~ 2016 ελοϑ
    • Python΋͘΋͘ձͷओ࠵
    • Pythonຊʢڞஶʣ

    View Slide

  4. ͓࿩͢Δ͜ͱ
    • PythonΤϯδχΞϑΝʔετϒοΫͷ঺հ
    • PythonͰͷWebΞϓϦέʔγϣϯ։ൃ

    View Slide

  5. PythonΤϯδχΞϑΝʔετϒοΫ

    View Slide

  6. എܠ
    • PythonΤϯδχΞཆ੒ಡຊʢ2೥લʣ
    • Pythonͷ੝Γ্͕ΓɺτϨϯυͷมԽ
    • Python3ରԠ
    • ϥΠϒϥϦɺπʔϧͷΞοϓσʔτ
    • ΑΓ࢓ࣄͰ࢖͑Δ࣮ફతͳ಺༰ʹ͍ͨ͠

    View Slide

  7. ஶऀ
    • 5ਓͷஶऀ
    • ීஈ࢓ࣄͰPythonΛ࢖༻͍ͯ͠Δϝϯόʔ
    • ͦΕͧΕͷϝϯόʔ͕1ষͣͭ୲౰

    View Slide

  8. ର৅ಡऀ
    • ϓϩάϥϛϯάͷܦݧ͕͋Δ
    • Pythonʹڵຯ͕͋ΓɺԿ͔Λ΍ͬͯΈ͍ͨ
    • PythonͰɺ۩ମతʹԿ͕Ͱ͖Δ͔஌Γ͍ͨ

    View Slide

  9. ಛ௃
    • ࢓ࣄͰ࢖༻͢Δ্ͰͷϙΠϯτΛղઆ
    • ݴޠ࢓༷
    • ։ൃ؀ڥɺνʔϜ։ൃ
    • ۩ମతͳ׆༻ࣄྫ
    • εΫϨΠϐϯάɺσʔλ෼ੳɺWeb։ൃ

    View Slide

  10. શମͷ֓ཁ
    • ୈ1ষɹPythonͷಈ޲
    • ୈ2ষɹ࠷௿ݶ஌͓͖͍ͬͯͨPythonݴޠͷجຊ
    • ୈ3ষɹ։ൃ؀ڥͱνʔϜ։ൃ
    • ୈ4ষɹεΫϨΠϐϯά
    • ୈ5ষɹPyDataೖ໳ΨΠυ
    • ୈ6ষɹWebΞϓϦέʔγϣϯ։ൃ

    View Slide

  11. ୈ1ষɹPythonͷಈ޲
    • Pythonͷಛ௃
    • Pythonͷྺ࢙
    • PythonͷίϛϡχςΟ

    View Slide

  12. ୈ2ষ Pythonݴޠͷجຊ
    • Pythonͷσʔλܕʦجຊฤʧ
    • PythonͷσʔλܕʦίϨΫγϣϯฤʧ
    • ϑΝΠϧૢ࡞ͱϞδϡʔϧ
    • ඪ४ϥΠϒϥϦ
    • αʔυύʔςΟ੡ύοέʔδ

    View Slide

  13. ୈ3ষɹ։ൃ؀ڥͱνʔϜ։ൃ
    • GitͱGitHub
    • venv
    • ςετ
    • Sphinx
    • PyCharm

    View Slide

  14. ୈ4ষɹεΫϨΠϐϯά
    • εΫϨΠϐϯάͱ͸
    • αʔυύʔςΟ੡ύοέʔδ
    • εΫϨΠϐϯάϑϨʔϜϫʔΫ Scrapyೖ໳

    View Slide

  15. ୈ5ষɹPyDataೖ໳ΨΠυ
    • PyDataͱ͸
    • ͸͡ΊͯͷJupyter Notebook
    • ࣮ફ Ϩΰσʔλ෼ੳʦσʔλ୳ࡧฤʧ
    • ࣮ફ Ϩΰσʔλ෼ੳʦσʔλՄࢹԽɼ෼ੳฤʧ

    View Slide

  16. ୈ6ষɹWebΞϓϦέʔγϣϯ։ൃ
    • WebϑϨʔϜϫʔΫೖ໳
    • DjangoΞϓϦέʔγϣϯͷ࡞੒ͱॳظઃఆ
    • ϏϡʔɼςϯϓϨʔτɼϧʔςΟϯά
    • Ϟσϧɼ؅ཧαΠτ
    • Ϩΰ؅ཧΞϓϦέʔγϣϯͷ࡞੒

    View Slide

  17. ͜ͷຊͷྑ͍ͱ͜Ζ
    • ετʔϦʔͷ͋Δ׆༻ࣄྫ
    • ๛෋ͳαϯϓϧίʔυ
    • खΛಈ͔͢ࣄ͕େࣄ

    View Slide

  18. PythonͰͷWebΞϓϦέʔγϣϯ։ൃ
    • PythonͰͷબ୒ࢶ
    • WebΞϓϦέʔγϣϯϑϨʔϜϫʔΫ
    • Djangoʹ͍ͭͯ

    View Slide

  19. PythonͰͷબ୒ࢶ
    • CGI
    • WSGI
    • WebΞϓϦέʔγϣϯϑϨʔϜϫʔΫ

    View Slide

  20. WSGIͱ͸ʁ
    • WebαʔόʔͱΞϓϦέʔγϣϯͷڞ௨ͷΠ
    ϯλʔϑΣʔε࢓༷
    • Java Servlet APIͷΑ͏ͳ΋ͷ
    • PEP333, PEP 3333
    • ඪ४ϥΠϒϥϦʹwsgiref ͕͋Δ

    View Slide

  21. WebΞϓϦέʔγϣϯ͸ෳࡶ
    • DBΞΫηε
    • ςϯϓϨʔτඳը
    • ϧʔςΟϯά
    • ϑΥʔϜॲཧ
    • ϑΝΠϧΞοϓϩʔυ
    • ηογϣϯ؅ཧ
    • ηΩϡϦςΟ
    • etc…

    View Slide

  22. WebΞϓϦέʔγϣϯϑϨʔϜϫʔΫ
    • WebΞϓϦͷ։ൃʹඞཁͳػೳΛఏڙ
    • ॲཧͷྲྀΕΛϑϨʔϜϫʔΫଆͰ੍ޚ
    • ։ൃऀ͸ඞཁͳ෦෼ͷΈΛ։ൃ
    • ΫϥεΛ࡞Δ
    • ςϯϓϨʔτΛॻ͘
    Ϋϥε
    ςϯϓϨʔτ

    View Slide

  23. PythonͷWebϑϨʔϜϫʔΫ
    • Pyramid
    • Tornado
    • Flask
    • Bottle
    • Django

    View Slide

  24. Pyramid
    • খ͘͞ɺૣ͘ɺݎ࣮ͳϑϨʔϜϫʔΫ
    • ͢΂ͯͷػೳΛϑϨʔϜϫʔΫଆͰ༻ҙ͠ͳ
    ͍
    • αʔυύʔςΟ੡ͷϥΠϒϥϦͱ૊Έ߹Θͤ
    ͯ࢖༻͢Δ

    View Slide

  25. Tornado
    • FriendFeedʢݱFacebookʣ͕։ൃ
    • ඇಉظͷωοτϫʔΫI/OϥΠϒϥϦ
    • Jupyter NotebookͷWebαʔόʔ

    View Slide

  26. Flask
    • ܰྔͳΞϓϦέʔγϣϯϑϨʔϜϫʔΫ
    • Werkzeug (WSGI utility library)
    • Jinja2 (Template Engine)

    View Slide

  27. Bottle
    • ܰྔͳΞϓϦέʔγϣϯϑϨʔϜϫʔΫ
    • ҰͭͷPythonϑΝΠϧͰఏڙ
    • ϑϨʔϜϫʔΫͷֶशʹ΋࠷ద

    View Slide

  28. Django
    • ϑϧελοΫͷϑϨʔϜϫʔΫ
    • ࠷৽όʔδϣϯ͸1.11
    • υΩϡϝϯτɺςετ͕ॆ࣮
    • ίϛϡχςΟ͕׆ൃ
    • ࠃ಺֎ʹࣄྫ͕ଟ͍

    View Slide

  29. Django͕ఏڙ͢Δػೳ
    • Ϟσϧ
    • Ϗϡʔ
    • ςϯϓϨʔτ
    • ϑΥʔϜ
    • ؅ཧαΠτ
    • ηΩϡϦςΟ
    • ࠃࡍԽ
    • Ϣʔβʔೝূ
    • ͦͷଞ

    View Slide

  30. DjangoͰͷ։ൃͷྲྀΕ
    • ϓϩδΣΫτͷ࡞੒
    • ΞϓϦέʔγϣϯͷ࡞੒
    • ॳظઃఆ (settings.py)
    • Ϟσϧͷ࡞੒
    • Ϗϡʔͷ࡞੒
    • ςϯϓϨʔτͷ࡞੒
    • ϧʔςΟϯάͷఆٛ

    View Slide

  31. ؅ཧαΠτ։ൃͷྲྀΕ
    • Ϟσϧͷ࡞੒
    • ؅ཧαΠτͷఆٛ
    • ͜Ε͚ͩͰศརͳ؅ཧαΠτ͕ߏஙͰ͖Δʂ

    View Slide

  32. Ϟσϧͷఆٛ
    Ϣʔβ
    λΠτϧ
    ຊจ
    ࡞੒೔࣌
    ߋ৽೔࣌

    View Slide

  33. Ϟσϧͷఆٛ
    ϒϩά
    λΠτϧ
    ຊจ
    ΧςΰϦ
    Լॻ͖
    ެ։೔࣌
    ࡞੒೔࣌
    ߋ৽೔࣌

    View Slide

  34. ϚΠάϨʔγϣϯ

    View Slide

  35. ؅ཧαΠτͷઃఆ

    View Slide

  36. ؅ཧαΠτσϞ

    View Slide

  37. ΞϓϦέʔγϣϯͷྲྀΕ
    ϒϥ΢β
    Ϗϡʔ
    ίϯτϩʔϥʔ

    Ϟσϧ
    %#ΞΫηεʣ
    ςϯϓϨʔτ
    ը໘ͷදࣔ

    View Slide

  38. ΞϓϦέʔγϣϯ։ൃͷྲྀΕ
    • Ϟσϧͷ࡞੒
    • ϑΥʔϜͷ࡞੒
    • Ϗϡʔͷ࡞੒
    • ςϯϓϨʔτͷ࡞੒
    • ϧʔςΟϯάͷఆٛ

    View Slide

  39. ࡞੒αΠτσϞ
    https://github.com/checkpoint/django_sample

    View Slide

  40. ศརͳϥΠϒϥϦ
    • django-debug-toolbar
    • Django REST framework

    View Slide

  41. ͓͢͢ΊαΠτ
    • Django Girls Tutorial
    • https://www.djangopackages.com/

    View Slide

  42. ͓͢͢ΊίϛϡχςΟ
    • Python mini Hack-a-thon
    • TokyoDjangoMeetup
    • Python΋͘΋͘ձ

    View Slide

  43. ·ͱΊ
    • PythonΤϯδχΞϑΝʔετϒοΫ
    • PythonͰͷWeb։ൃʹ͍ͭͯ

    View Slide

  44. ͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠

    View Slide