Slide 1

Slide 1 text

ୈ̍ճ 8FCΞϓϦέʔγϣϯجૅߨ࠲ ͋͋ͨ͘Μ޻๪ http://www.google.com/

Slide 2

Slide 2 text

ࠓ೔͸̍೔ ΑΖ͓͘͠ئ͍͠·͢ !2

Slide 3

Slide 3 text

ࣗݾ঺հλΠϜ !3

Slide 4

Slide 4 text

΀ΓΜΆΑ !QVEEJOH@JOGP %KBOHPྺ೥൒͘Β͍ ॳ৺ऀͳͷͰԥΒͳ͍Ͱ !4

Slide 5

Slide 5 text

ΞδΣϯμ !5 d 8FCΞϓϦͬͯԿʁ d 8FCΞϓϦͷ࢓૊Έ d 8FCΞϓϦέʔγϣϯϑϨʔϜϫʔΫ d .7$ d ٳܜ d 1ZUIPOͷ෮श d %KBOHPνϡʔτϦΞϧ ٳܜʢద౓ʹʣ ࠲ֶ ԋश

Slide 6

Slide 6 text

8FCΞϓϦͬͯԿʁ !6

Slide 7

Slide 7 text

8FCαΠτ !7

Slide 8

Slide 8 text

˔ )5.- ˓ ߏ଄Λ࡞Δ ˔ $44 ˓ ݟͨ໨Λ͍͡Δ ˔ +BWBTDSJQU ˓ ಈ͖Λ෇͚Δ 8FCαΠτͷιʔείʔυ !8

Slide 9

Slide 9 text

8FCαΠτΛӾཡ͢Δ·Ͱ !9

Slide 10

Slide 10 text

8FCΞϓϦͬͯԿʁ !10

Slide 11

Slide 11 text

˔ ୯ͳΔ)5.-ɾ$44Λฦ͚ͩ͢ˠ੩తαΠτ ˓ ϢʔβʹԠͨ͡ίϯςϯπͷมԽ͕΄΅ͳ͍ ˔ +BWBTDSJQUͰಈ͓͘໰͍߹ΘͤϑΥʔϜ͕͋Δ ˠʁʁʁ ˔ +BWBTDSJQU $BOWBTͰ͓ֆ͔͖Ͱ͖Δˠʁʁʁ ˔ αʔόʔଆͰಈతʹIUNM͕ੜ੒͞ΕΔˠʁʁʁ ˔ +BWBTDSJQU͕֎෦ͷ"1*αʔόͱ࿈ܞͯ͠දࣔΛ ม͑Δˠʁʁʁ ੩తαΠτͱ8FCΞϓϦ !11

Slide 12

Slide 12 text

˔ 8FCϒϥ΢β্Ͱಈ࡞͠ɼ)551௨৴Λհͯ͠αʔ όͱϢʔβ͕ΠϯλϥΫςΟϒͳ΍ΓͱΓΛߦ͏ ˓ ͜͜Ͱͷಠࣗఆٛͱ͢Δ ˓ ਖ਼௚ʮ8FCΞϓϦʯͱ͍͏ׅΓ͸͋·Γʹ؇͍ ˔ ௨৴Λߦ͏ํ๏͸໰Θͳ͍ ˓ +BWBTDSJQUͰඇಉظʹߦͬͯ΋ɼϢʔβʹΑΔϦϯΫ ͷΫϦοΫ΍ϑΥʔϜͷ1045Ͱ΋Α͍ ͜͜Ͱͷ8FCΞϓϦͷఆٛ !12

Slide 13

Slide 13 text

˔ ωΠςΟϒΞϓϦέʔγϣϯ ˓ 7JTVBM4UVEJPɼ1Z$IBSNɼ$ISPNFͳͲ ˓ ͦͷϓϥοτϑΥʔϜ্Ͱ௚઀ಈ࡞͢ΔΞϓϦ ˔ 8FCΞϓϦέʔγϣϯ ˓ (NBJMɼ(JUIVCɼESBXJPͳͲ ˓ ϒϥ΢β্Ͱಈ࡞͢ΔΞϓϦ ˔ ϋΠϒϦουΞϓϦέʔγϣϯ ˓ 74$PEFɼ(JULSBLFOɼ4MBDLͳͲ ˓ ϒϥ΢βΛ಺ଂ͠ωΠςΟϒΞϓϦͷΑ͏ʹ
 ಈ࡞͢ΔΞϓϦ ˔ ϓϩάϨογϒ΢ΣϒΞοϓʢ18"ʣͳͲʜ ৭ʑͳΞϓϦέʔγϣϯ !13 http://www.google.com/

Slide 14

Slide 14 text

http://www.google.com/ ͳΜͰ΋8FCΞϓϦʹ͢Ε͹ ྑ͍Θ͚Ͱ͸ͳ͍ ˔ ϒϥ΢β͕ಈ͘σόΠεͳΒ࢖͑Δ ˓ ಈ࡞͢ΔσόΠε͕ଟ͍ରԠͰ͖Δސ٬͕ଟ͍ ˔ ϝϯςφϯε͕༰қ ˓ ϢʔβͷΠϯετʔϧΛඞཁͱ͠ͳ͍ͨΊ 8FCΞϓϦʹ͢Δͷ͸ͳͥʁ !14

Slide 15

Slide 15 text

˔ ߴ଎ͳϨεϙϯε ˓ ωΠςΟϒΞϓϦͱൺֱͯ͠஗͍ ˓ Πϯλʔωοτ઀ଓ଎౓ʹࠨӈ͞ΕΔ ˔ ΦϑϥΠϯͰͷ࢖༻ ˓ Πϯλʔωοτʹ઀ଓ͍ͯ͠ͳ͍ͱ࢖͑ͳ͍ ˔ ϋοΧʔ͔Βͷಀආ ˓ ߈ܸ͞Ε΍͘͢ɼߴ౓ͳηΩϡϦςΟ͕ٻΊΒΕΔ 8FCΞϓϦʹͰ͖ͳ͍͜ͱ !15

Slide 16

Slide 16 text

༻๏༻ྔΛकͬͯ
 ਖ਼͓͘͠࢖͍͍ͩ͘͞ !16

Slide 17

Slide 17 text

8FCΞϓϦͷ࢓૊Έ !17

Slide 18

Slide 18 text

˔ αʔόʔଆͰ)5.-Λੜ੒͢ΔλΠϓ ˓ Ұൠతͳ8FCΞϓϦ ˓ +BWBɼ1)1ɼ3VCZɼ1ZUIPO౳Ͱॻ͔ΕΔ͜ͱ͕ଟ͍ ˔ ΫϥΠΞϯτଆͰ)5.-Λੜ੒͢ΔλΠϓ ˓ ผͰ"1*αʔό౳Λཱͯɼ+BWBTDSJQU౳Λ༻͍ͯ௨৴͠ɼ Ϣʔβͷϒϥ΢β্Ͱ)5.-Λੜ੒͢Δ ˓ 3FBDUKTͳͲ ˔ ϋΠϒϦουλΠϓ ˓ αʔόʔଆͰ)5.-Λੜ੒͠ɼ͔ͭΫϥΠΞϯτଆͰ΋ +BWBTDSJQUͰ੍ޚ͢Δ ˓ ্̎ͭΛ૊Έ߹ΘͤΔ ৭ΜͳλΠϓͷ8FCΞϓϦ !18

Slide 19

Slide 19 text

˔ ςϯϓϨʔτʹ஋ΛຒΊࠐΉํ͕ࣜҰൠత )5.-Λੜ੒͢ΔͬͯͲ͏͍͏͜ͱʁ !19
  • {{ question.question_text }}
  • Is this a pen?
  • RVFTUJPOJE RVFTUJPORVFTUJPO@UFYU*TUIJTBQFO 

    Slide 20

    Slide 20 text

    ˔ 8FCΞϓϦͷ࢓ࣄ͸جຊతʹσʔλϕʔεͷૢ࡞ ͓Αͼͦͷ಺༰ͷදࣔ ˓ σʔλϕʔεͷ6*ͱݴ͏͜ͱ΋Ͱ͖Δ ˔ 6*ΛͲ͏ར༻͢Δ͔͸ར༻ऀ࣍ୈͳͷͰɼૹΒΕ ͯ͘Δ஋͸جຊతʹ৴༻͠ͳ͍ ˓ ΫϥΠΞϯταΠυͰͷόϦσʔγϣϯ͚ͩͰͳ͘
 αʔόαΠυͰͷόϦσʔγϣϯ΋ ˔ ࢖͍΍͍͢6*Λߏங͠Α͏ ʮ8FCΞϓϦ͸%#ͷ6*ʯ !20

    Slide 21

    Slide 21 text

    ˔ )5.-ͷ'PSNΛར༻͢Δͷ͕Ұൠత ˓ GPSNBDUJPOIPHFIPHFNFUIPEQPTU ˓ 165΍1"5$)͸͋·Γ࢖ΘΕͳ͍ؾ͕͢Δ ˓ 1045Ͱશͯ·͔ͳ͑ΔͨΊ ˔ (&5Ͱ΋Ͱ͖Δ ˓ 63-ͷύϥϝʔλΛ෇͚ͯ(&5 ˓ ৭ʑةͳ͍ʢ߈ܸʹ࢖ΘΕ΍͍͢ʣ Ϣʔβ͔Βͷσʔλͷૹ৴ !21

    Slide 22

    Slide 22 text

    ˔ 8FCΞϓϦ͸ը໘ΛΆͪΆͪ͢ΔΠϝʔδ͕
 ڧ͍͕ɼ݁ہͷॴαʔόͱΫϥΠΞϯτؒͷ
 )551௨৴Ͱ͋Δ ˔ Ϣʔβ͕ͦͷؾʹͳΕ͹શ͘૝ఆ͍ͯ͠ͳ͍63-ʹ શ͘૝ఆ͍ͯ͠ͳ͍σʔλ͕ૹΒΕͯ͘Δ͜ͱ΋͋Δ ˓ ؾΛ͚ͭͳ͍ͱ༧ظͤ͵߈ܸ͕ى͖ಘΔ ݁ہ͸ͨͩͷ)551௨৴ !22 1045

    Slide 23

    Slide 23 text

    ਤղͰΘ͔Δʂ8FCΞϓϦ !23 ˔ ུ֓ਤͳͷͰৄࡉ͸ল͘

    Slide 24

    Slide 24 text

    8FCΞϓϦέʔγϣϯ ϑϨʔϜϫʔΫ !24

    Slide 25

    Slide 25 text

    ˔ ϓϥϞσϧͷΑ͏ͳ΋ͷ ˓ ύʔπ͕͋Γɼ׬੒ܗ͕ ͋Δఔ౓ݟ͍͑ͯΔ͕ɼ ݸਓʹΑͬͯͦͷ׬੒౓ ͸ҟͳΔ ˔ Ճ޻ɾృ૷ɾվ଄ʹΑͬ ͯग़དྷ্͕Δ΋ͷͷ׬੒ ౓͕େ͖͘มΘΔ ϑϨʔϜϫʔΫͬͯԿʁ !25

    Slide 26

    Slide 26 text

    ˔ 3VCZPO3BJMT ˓ 8FCΞϓϦͬͯݴͬͨΒ͜Εͬͯ͘Β͍
 ීٴ͍ͯ͠ΔɽϑϧελοΫϑϨʔϜϫʔΫɽ ˓ $PPLQBEɼ(JUIVCͳͲ ˔ -BSBWFM ˓ 1)1ɽϑϧελοΫϑϨʔϜϫʔΫɽ ˔ 4QSJOH'SBNFXPSL ˓ +BWBɽϑϧελοΫϑϨʔϜϫʔΫɽ ˔ %KBOHP ˓ 1ZUIPOɽϑϧελοΫϑϨʔϜϫʔΫɽ ˓ %SPQCPYɼ*OTUBHSBNͳͲ ୅දతͳ8FCΞϓϦϑϨʔϜϫʔΫ !26

    Slide 27

    Slide 27 text

    ˔ ͜Ε·Ͱ΋༷ʑͳϥΠϒϥϦ͕͋ͬͨ ˓ %#ૢ࡞͢ΔϥΠϒϥϦ ˓ )5.-ʹม਺ຒΊࠐΉϥΠϒϥϦ ˓ 8FCαʔόΛ࡞ΔϥΠϒϥϦʜFUD ˔ ಉ౳ͷػೳΛ୯Ұͷύοέʔδͱͯ͠ఏڙ͠ɼ
 جຊߏ੒Λશͯ४උ͍ͯ͠ΔϑϨʔϜϫʔΫ ˔ ͲͷϥΠϒϥϦΛ࢖͏͔ɼΑΓ΋ɼͲ͏͍ͬͨ
 ػೳΛ࣮૷͢Δ͔ɼʹूதͰ͖Δ ϑϧελοΫϑϨʔϜϫʔΫͬͯʁ !27

    Slide 28

    Slide 28 text

    ˔ ϝϦοτ ˓ ࣗ෼ͨͪͷϏδωεϩδοΫͷ࣮૷ʹूதͰ͖Δ ˓ ্ཱ͕ͪ͛଎͍ ˓ ͋Δఔ౓ͷηΩϡϦςΟͷ୲อʢॏཁʣ ˔ σϝϦοτ ˓ ͦͷϑϨʔϜϫʔΫʹϩοΫΠϯ͞Εͯ͠·͍ɼ
 ൈ͚ग़͢ͷ͕೉͍͠ɽ ˓ ֶशίετ͕ߴ͍ʢ΄Μ·͔ʁʣ ˓ ஌͕ࣝภΔ ϑϧελοΫͷϝϦοτɾσϝϦοτ !28

    Slide 29

    Slide 29 text

    ˔ 63-σΟεύονϟʢϧʔλʣ ˓ 63-ͷύεͱͦΕʹରԠ͢Δػೳͷඥ෇͚Λߦ͏ ˔ ςϯϓϨʔτΤϯδϯ ˓ )5.-ʹม਺ΛຒΊࠐΉػೳ ˔ ΦϒδΣΫτϦϨʔγϣφϧϚούʔʢ03.ʣ ˓ 42-Λ௚઀৮Δ͜ͱແ͘ɼ%#্ͷϨίʔυΛϓϩά ϥϛϯάతʹѻ͏͜ͱ͕ग़དྷΔػೳ ˓ 42-ΠϯδΣΫγϣϯΛ๷͍Ͱ͘ΕͨΓ΋͢Δ ؚΜͰ͍Δओͳػೳ !29

    Slide 30

    Slide 30 text

    ˔ ݴޠ͸޷Έ͕ͩɼকདྷੑ͸ߟྀ͓ͯ͘͠΂͖ ˓ ྫ͑͹ࠓ͔Β1FSMΛ΍Δͷ͸ͪΐͬͱʜʜ ˔ جຊతʹ͸σϑΝΫτελϯμʔυʹͳ͍ͬͯΔ ΋ͷΛબ୒͢Δ ˓ બ͹ΕΔʹ͸ඞͣཧ༝͕͋Δ ˓ ࢖͍΍͍͢ɾߴػೳͳͲͳͲ ˔ ҉໧ͷػೳ͕ଟ͍ͷͰɼυΩϡϝϯτ͕͔ͬ͠Γ ͋Γωοτʹ৘ใ͕ଟ͍΋ͷΛબ୒͠Α͏ ϑϨʔϜϫʔΫͷબఆ !30

    Slide 31

    Slide 31 text

    .7$ !31

    Slide 32

    Slide 32 text

    ˔ .PEFM7JFX$POUSPMMFSʹ෼͚࣮ͯ૷͢Δ͜ͱͰɼ ͦΕͧΕͷ݁߹ΛऑΊอकੑΛߴΊΔ ˔ .PEFM ˓ σʔλͷอ࣋ɾݕূ ˔ $POUSPMMFS ˓ σʔλͷૢ࡞ʢӕ͸͍ͭͯͳ͍ʣ ˔ 7JFX ˓ Ϣʔβʹݟ͑ΔܗͰσʔλΛදࣔʢӕ͸SZʣ .7$ !32

    Slide 33

    Slide 33 text

    ຊ౰ͷ.7$ !33 .PEFM $POUSPMMFS 7JFX ௨஌ ૢ࡞ɾࢀর ࢀߟIUUQTXXXTMJEFTIBSFOFU.VHF4PNWD

    Slide 34

    Slide 34 text

    ͦ͜ΒลͰ࢖ΘΕͯΔࣗশ.7$ !34 .PEFM $POUSPMMFS 7JFX σʔλϑϩʔ ૢ࡞ɾࢀর ࢀߟIUUQTXXXTMJEFTIBSFOFU.VHF4PNWD

    Slide 35

    Slide 35 text

    ˔ ԿΒ͔ͷΞʔΩςΫνϟʹͷͬͱ࣮ͬͯ૷Λ෼཭ ͢Δ͜ͱ͸ී௨ʹߦΘΕ͍ͯΔ ˓ .7$Ҏ֎ʹ΋.77.ͱ͔.57ͱ͔৭ʑ͋Δ ˔ ϓϩάϥϚͷҰൠڭཆͳͷͰɼ.7$͘Β͍͸
 ෼͔Βͳ͍ͱμϝ ˔ ΋ͪΖΜ࣮ࡍʹ.7$Λ࠾༻͍ͯ͠ΔϑϨʔϜ
 ϫʔΫ͸ଘࡏ͢Δ ͜ͷ஌ࣝ࢖͑Δͷʁʁʁ !35

    Slide 36

    Slide 36 text

    ˔ %KBOHP͕࠾༻͍ͯ͠ΔΞʔΩςΫνϟ ˓ .PEFM5FNQMBUF7JFXʹ෼͚ͯߟ͑Δ ˔ .PEFM ˓ σʔλϕʔεʹଘࡏ͢Δσʔλ ˔ 7JFX ˓ ͦͷσʔλΛॲཧɾબ୒͢ΔͳͲ ˔ 5FNQMBUF ˓ σʔλΛຒΊࠐΉςϯϓϨʔτσβΠϯ .57 !36

    Slide 37

    Slide 37 text

    1ZUIPOͷ෮श !37

    Slide 38

    Slide 38 text

    ˔ d·Ͱͷ਺ࣈͰɺ
 ͰׂΓ੾ΕΕ͹ɺʮ'J[[ʯΛදࣔ͢Δ
 ͰׂΓ੾ΕΕ͹ɺʮ#V[[ʯΛදࣔ͢Δ
 ͱͰׂΓ੾ΕΕ͹ɺʮ'J[[#V[[ʯΛදࣔ͢Δ
 ্هҎ֎ͷ৔߹͸ɺͦͷ··ͷ਺ࣈΛදࣔ͢Δ ˔ ࣮૷ํ๏͸೚ͤΔ 'J[[#V[[ !38

    Slide 39

    Slide 39 text

    Django at a glance Because Django was developed in a fast-paced newsroom environment, it was designed to make common Web- development tasks fast and easy. Here’s an informal overview of how to write a database-driven Web app with Django. The goal of this document is to give you enough technical specifics to understand how Django works, but this isn’t intended to be a tutorial or reference – but we’ve got both! When you’re ready to start a project, you can start with the tutorial or dive right into more detailed documentation. ˔ ্هӳจͷ֤୯ޠͷग़ݱ਺ΛΧ΢ϯτ͢Δ ˓ DPMMFDUJPOT$PVOUFS࢖͏ͷ͸ແ͠ ୯ޠͷΧ΢ϯτ !39 Cited from https://docs.djangoproject.com/en/2.0/intro/overview/

    Slide 40

    Slide 40 text

    %KBOHPνϡʔτϦΞϧ !40

    Slide 41

    Slide 41 text

    ˔ 1ZUIPOͰॻ͚Δ ˓ ػցֶशͱͷ਌࿨ੑͷ͋ΔݴޠͳͷͰྲྀߦʹ
 ৐͔ͬͬͯΔ ˔ ϑϧελοΫͰ͋Δ ˓ ߴ଎Ͱൺֱత҆શͳ։ൃͷͨΊʹ ˔ ؅ཧαΠτͷॆ࣮౓ ˓ σϑΥϧτͰBENJO༻ͷαΠτ͕෇ଐ͍ͯ͠Δ ˓ ςετσʔλΛ࡞੒ߋ৽࡟আ͢Δͷָ͕ ˔ ೔ຊޠͰݕࡧͨ͠ͱ͖ͷ৘ใͷ·ͱ΋͞ ˓ 3˓CZ˓O3˓JMTͷݕࡧ݁Ռ͕ͻͲ͗͢Δ 8IZ%KBOHPʁ !41

    Slide 42

    Slide 42 text

    ެࣜͷνϡʔτϦΞϧ ˣ IUUQTEPDTEKBOHPQSPKFDUDPN KBJOUSP !42

    Slide 43

    Slide 43 text

    ͋Β͔͡Ί΍͓͍ͬͯͨ΋ͷ ˣ IUUQTHJUIVCDPN4UVEJP"RVBUBO EKBOHPP⒏DJBMUVUPSJBM !43

    Slide 44

    Slide 44 text

    νϡʔτϦΞϧͷΞδΣϯμ !44 d 1BSUΠϯετʔϧɾ)FMMPXPSME d 1BSUϞσϧͷఆٛɾ%#ϚΠάϨʔγϣϯ d 1BSUجຊػೳͰςϯϓϨʔτͱ7JFX d 1BSUϑΥʔϜͱͷ࿈ܞ൚༻7JFX ෼ٳܜ d 1BSUϢχοτςετ d 1BSU੩తϑΝΠϧͷ௥Ճ d 1BSU؅ཧαΠτͷΧελϚΠζ

    Slide 45

    Slide 45 text

    1BSU %KBOHPΠϯετʔϧ  )FMMPXPSME !45

    Slide 46

    Slide 46 text

    ˔ %KBOHP͸YͱYͰͦΕͳΓʹมΘͬͨ ˔ ࠓޙ࢖͍ͬͯ͘ͳΒ%KBOHPYҰ୒ %KBOHPͷΠϯετʔϧ !46 $ pipenv install django $ pipenv run python -m django --version 2.0.7 $ pipenv graph 07/18 21:34(Wed) Django==2.0.7 - pytz [required: Any, installed: 2018.5]

    Slide 47

    Slide 47 text

    $ pipenv run django-admin startproject sample $ tree -L 3 sample sample ├── manage.py └── sample ├── __init__.py ├── settings.py ├── urls.py └── wsgi.py ˔ ৽نϓϩδΣΫτ࡞੒ͳͲΛߦ͏ ˔ EKBOHPΛΠϯετʔϧ͢Δͱ࢖͑ΔΑ͏ʹͳΔ EKBOHPBENJOίϚϯυ !47

    Slide 48

    Slide 48 text

    $ pipenv run python manage.py runserver # ϒϥ΢βͰ http://localhost:8000/ ʹΞΫηε ˔ %KBOHPͷ༷ʑͳૢ࡞Λߦ͏ͨΊͷϥούʔ
 εΫϦϓτΈ͍ͨͳ΋ͷ ˓ ಠࣗίϚϯυͷఆٛ΋Մೳ ˔ %#ͷςʔϒϧ࡞੒΍։ൃ༻αʔόͷىಈͳͲ NBOBHFQZ !48

    Slide 49

    Slide 49 text

    No content

    Slide 50

    Slide 50 text

    5JQT1Z$IBSNͰ։͘ !50

    Slide 51

    Slide 51 text

    ˔ +FUCSBJOT੡ͷ1ZUIPO༻*%& ˓ 1SPGFTTJPOBMɿ%KBOHPɾϓϥάΠϯͷαϙʔτͳͲ ˓ $PNNVOJUZɿແঈɽػೳ੍ݶ൛ɽ ˔ ֶੜ͸ΞΧσϛοΫϥΠηϯεͰແྉ ˓ ͨͩ͠ඇ঎༻ͳͷͰ஫ҙ 1Z$IBSN !51

    Slide 52

    Slide 52 text

    ࡞੒ࡁΈϓϩδΣΫτΛ։͘ !52 ΫϦοΫ

    Slide 53

    Slide 53 text

    σΟϨΫτϦΛબ୒ !53

    Slide 54

    Slide 54 text

    ˔ 1SFGFSFODFT1SPKFDUXFCBQQ@QSBDUJDF1SPKFDU*OUFSQSFUFSΛ։͘ 1ZUIPOԾ૝؀ڥΛબ୒ !54 ΫϦοΫͯ͠"EEʜΛબ୒

    Slide 55

    Slide 55 text

    WFOWΛબ୒ !55 ˔ ௚ԼʹWFOWͱ͔ͷσΟϨΫτϦ͕͋Δ৔߹ɼࣗಈͰબ୒ͯ͘͠ΕΔ

    Slide 56

    Slide 56 text

    ˔ ͦͷԾ૝؀ڥʹΠϯετʔϧͯ͋͠ΔύοέʔδҰཡ͕ग़Δ ύοέʔδҰཡΛදࣔ !56

    Slide 57

    Slide 57 text

    %KBOHP4VQQPSUΛ༗ޮԽ !57 ˔ -BOHVBHFT'SBNFXPSLT%KBOHPΛબ୒ ΫϦοΫͯ͠༗ޮԽ

    Slide 58

    Slide 58 text

    ˔ ϧʔτσΟϨΫτϦʢࠓճ͸TBNQMFʣΛબ୒ %KBOHPͷϧʔτσΟϨΫτϦΛબ୒ !58

    Slide 59

    Slide 59 text

    ˔ TBNQMFTBNQMFҎԼʹ͋ΔTFUUJOHTQZΛબ୒͢Δ TFUUJOHTQZΛબ୒ !59 "QQMZΛΫϦοΫ

    Slide 60

    Slide 60 text

    ˔ 1Z$IBSN͔Β௚઀࣮ߦ͢Δ͜ͱ͕Ͱ͖Δ NBOBHFQZͷλεΫΛ࣮ߦ͢Δ !60

    Slide 61

    Slide 61 text

    SVOTFSWFSͯ͠ΈΔ !61 ʜΊΜͲͳ͍ʁ

    Slide 62

    Slide 62 text

    ˔ 3VO&EJU$POpHVSBUJPOTΛબ୒ SVOTFSWFS͢Δ࣮ߦߏ੒Λ௥Ճ !62

    Slide 63

    Slide 63 text

    ࣮ߦߏ੒ͷ௥Ճը໘ !63 ΫϦοΫͯ͠%KBOHPTFSWFSΛ௥Ճ

    Slide 64

    Slide 64 text

    ࣮ߦߏ੒ͷ௥Ճը໘ !64 ໊લΛ෇͚Δ

    Slide 65

    Slide 65 text

    ࣮ߦߏ੒ͷ௥Ճը໘ !65 ΞΫηε͢Δϗετ໊ ࣮ߦ࣌ʹࣗಈͰϒϥ΢βͰ։͘ 0,ΛΫϦοΫ

    Slide 66

    Slide 66 text

    ˔ ӈ্ͷ࣮ߦߏ੒Ұཡ͔Βઌ΄Ͳ࡞੒ͨ͠ SVOTFSWFSΛબ୒͢Δ ࣮ߦ͢Δ !66

    Slide 67

    Slide 67 text

    ˔ ⾣ΛΫϦοΫ͢Δͱ࣮ߦ ˔ ˙Ͱఀࢭ ࣮ߦ͢Δ !67

    Slide 68

    Slide 68 text

    ˔ ΞϓϦέʔγϣϯશମͷઃఆΛߦ͏ϑΝΠϧ ˓ 4&$3&5@,&:ͳͲػີ৘ใΛؚΉͨΊɼͦͷ·· DPNNJUͯ͠QVTI͠ͳ͍͜ͱ ˔ ৄࡉ͸ެࣜυΩϡϝϯτΛࢀߟʹ ˓ IUUQTEPDTEKBOHPQSPKFDUDPNFOSFG TFUUJOHT ˔ ·ͣ͸೔ຊޠԽ ˓ -"/(6"(&@$0%&KBKQ ˓ 1Z$IBSN͔ΒSVOTFSWFS͢Δ TFUUJOHTQZ !68

    Slide 69

    Slide 69 text

    No content

    Slide 70

    Slide 70 text

    # PyCharmͷmanage.py task࣮ߦΛ࢖༻͢Δ manage.py@webapp_practice > startapp polls ˔ NBOBHFQZ͔Β࢖͑ΔίϚϯυ ˔ %KBOHPͰ͸ʮΞϓϦέʔγϣϯʯͱ͍͏୯Ґ͕༻͍Β Ε͍ͯΔ ˓ ྫ͑͹Ϣʔβ؅ཧɾೝূͳͲҰͭͷػೳ୯Ґ ˓ ΋ͪΖΜ͋ΔΞϓϦ͔ΒผͷΞϓϦͷσʔλΛࢀর
 ͢Δ͜ͱ΋ग़དྷΔ ˔ ࠓճ͸࣭໰ͱબ୒ࢶ͔ΒϢʔβ౤ථΛืΔΞϓϦ
 QPMMTΛ࡞੒͢Δ TUBSUBQQ !70

    Slide 71

    Slide 71 text

    sample ├── manage.py ├── polls │ ├── __init__.py │ ├── admin.py │ ├── apps.py │ ├── models.py │ ├── tests.py │ └── views.py └── sample ├── __init__.py ├── settings.py ├── urls.py └── wsgi.py ΞϓϦͷσΟϨΫτϦߏ੒ !71 ৽͘͠௥Ճ͞Εͨ

    Slide 72

    Slide 72 text

    )FMMPXPSME͢Δ !72 ˔ ΞΫηε͢Δͱ)FMMPXPSMEͱฦ͢ϖʔδΛ࡞Δ ˓ DPNNJUBDD ˔ WJFXTQZ ˓ .7$Ͱ͍͏ίϯτϩʔϥʹ͍ۙʢ΍΍͍͜͠ʣ ˓ Ϣʔβ͔ΒͷϦΫΤετΦϒδΣΫτΛॲཧͯ͠
 ϨεϙϯεΛฦ͢ ˔ VSMTQZ ˓ Ͳͷ63-ύεΛͲͷWJFXʹඥ෇͚Δ͔ΛܾΊΔ ˓ JODMVEF ͸ͦ͜ʹؚ·ΕΔVSMQBUUFSOΛશͯಡΈࠐΈ ͦͷύεҎԼʹ഑ஔ͢Δࣄ͕ग़དྷΔ

    Slide 73

    Slide 73 text

    No content

    Slide 74

    Slide 74 text

    1BSU Ϟσϧͷఆٛ  %#ϚΠάϨʔγϣϯ !74

    Slide 75

    Slide 75 text

    ˔ 8FCΞϓϦʹ͓͚Δσʔλͷఆٛ ˓ ͦͷ··σʔλϕʔεͷςʔϒϧͱҰக͢Δ ˓ Α͘ߟ͑ͯఆٛ͠ͳ͍ͱΞϓϦέʔγϣϯ͕ແҙຯʹ ෳࡶʹͳͬͯ͠·͏ ˔ %KBOHPͰ͸AEKBOHPECNPEFMT.PEFMAΛ
 ܧঝͯ͠એݴ ˔ ౤ථΞϓϦΛ࡞Δʹ౰ͨΓɼ࣭໰ͷϞσϧͱͦͷ બ୒ࢶͷϞσϧΛఆٛ͢Δ ˓ DPNNJUD ϞσϧͬͯԿʁ !75

    Slide 76

    Slide 76 text

    class Question(models.Model): """࣭໰ͷϞσϧ""" # ࣭໰จͷΧϥϜ question_text = models.CharField(max_length=200) # ࡞੒͞Εͨ೔෇ͷΧϥϜ pub_date = models.DateTimeField('date published') 2VFTUJPOςʔϒϧ !76 QPMMTNPEFMTQZ QL QSJNBSZLFZ RVFTUJPO@UFYU QVC@EBUF  IPHFIPHF   GVHBGVHB  ΧϥϜ Ϩίʔυ

    Slide 77

    Slide 77 text

    class Choice(models.Model): """બ୒ࢶͷϞσϧ""" # ରԠ͢Δ࣭໰ͷidΛ֨ೲ͢ΔΧϥϜ question = models.ForeignKey(Question, on_delete=models.CASCADE) # બ୒ࢶͷจষ choice_text = models.CharField(max_length=200) # ౤ථ਺ͷΧϥϜ votes = models.IntegerField(default=0) ֎෦Ωʔ੍໿ʢ'PSFJHO,FZʣ !77 QPMMTNPEFMTQZ QL DIPJDF@UFYU WPUFT RVFTUJPO@JE  QPZP    QPF   $IPJDFςʔϒϧ ඥ෇͚Δ2VFTUJPOςʔϒϧ্ ͷϨίʔυͱରԠ෇͚ %KBOHPͷ03.͔Β৮Δ্Ͱ ͸ಛʹҙࣝ͠ͳͯ͘ྑ͍ ʢΞΫηε͢Δࡍʹ͸௚઀ͦ ͷΦϒδΣΫτΛ৮ΕΔʣ

    Slide 78

    Slide 78 text

    ϦϨʔγϣϯͷύλʔϯ !78 ˔ .BOZUP0OF0OFUP.BOZ ˓ ྫʣຊͱग़൛ࣾɽຊ͸ଟ਺ͰͦΕͧΕͷग़൛ࣾ͸Ұͭ ˓ ࠓճ͸࣭໰ʢ0OFʣͱબ୒ࢶʢ.BOZʣͷؔ܎ ˔ 0OFUP0OF ˓ ྫʣϢʔβͱͦͷϓϩϑΟʔϧ ˓ ඞͣҰ͔ͭ࣋ͯ͠ͳ͍ ˔ .BOZUP.BOZ ˓ ྫʣຊͱஶऀͷؔ܎ɽڞஶऀΛߟྀ͢ΔͱɼҰͭͷຊΛ ෳ਺ਓ͕ɼҰਓ͕ෳ਺ͷຊΛॻ͘ঢ়ଶ͕ଘࡏɽ ˓ ຊͷςʔϒϧͱஶऀͷςʔϒϧҎ֎ʹɼͦΕͷඥ෇͚Λ ఆٛ͢Δςʔϒϧ͕ඞཁʢ03.͕উखʹ΍ͬͯ͘ΕΔʣ

    Slide 79

    Slide 79 text

    ˔ σʔλϕʔεͷ͍Ζ͍Ζͳૢ࡞Λࢦ͢ ˓ ৽نςʔϒϧΛ࡞Δ ˓ ΧϥϜΛมߋ͢ΔʜFUD ˔ NBLFNJHSBUJPOTίϚϯυ ˓ ΞϓϦ௚ԼͷNJHSBUJPOTσΟϨΫτϦʹૢ࡞಺༰͕
 ࣗಈੜ੒͞ΕΔ ˓ σʔλϕʔε͝ͱʹ࠷దͳ΋ͷΛग़ྗ ˔ NJHSBUFίϚϯυ ˓ ੜ੒͞ΕͨϚΠάϨʔγϣϯͷ಺༰Λ࣮ߦ͢Δ ˓ ϚΠάϨʔγϣϯͰςʔϒϧΛ࡞Δ·Ͱ͸σʔλϕʔε ʹϨίʔυΛ௥ՃͰ͖ͳ͍ ϚΠάϨʔγϣϯ !79

    Slide 80

    Slide 80 text

    ॳճͷϚΠάϨʔγϣϯΛ࣮ߦ !80 manage.py@webapp_practice > makemigrations manage.py@webapp_practice > migrate Operations to perform: Apply all migrations: admin, auth, contenttypes, polls, sessions Running migrations: Applying contenttypes.0001_initial... OK Applying auth.0001_initial... OK Applying admin.0001_initial... OK Applying admin.0002_logentry_remove_auto_add... OK Applying contenttypes.0002_remove_content_type_name... OK Applying auth.0002_alter_permission_name_max_length... OK Applying auth.0003_alter_user_email_max_length... OK Applying auth.0004_alter_user_username_opts... OK Applying auth.0005_alter_user_last_login_null... OK Applying auth.0006_require_contenttypes_0002... OK Applying auth.0007_alter_validators_add_error_messages... OK Applying auth.0008_alter_user_username_max_length... OK Applying auth.0009_alter_user_last_name_max_length... OK Applying polls.0001_initial... OK Applying sessions.0001_initial... OK

    Slide 81

    Slide 81 text

    ˔ NBOBHFQZTIFMMͰ%KBOHPͷػೳΛίϚϯυ
 ϥΠϯͰࢼͤΔ ˔ ࣭໰ͱͦΕʹඥ෇͘બ୒ࢶΛ࡞ͬͯΈΔ %KBOHPͷTIFMM !81 >>> from polls.models import Choice, Question >>> Question.objects.all() >>> from django.utils import timezone >>> q = Question(question_text="What's new?",pub_date=timezone.now()) >>> q.save() >>> Question.objects.all() ]> >>> c = Choice.objects.create(question=q, choice_text="hoge") >>> q.choice_set.all() ]>

    Slide 82

    Slide 82 text

    from django.contrib import admin from polls.models import Question, Choice # QuestionͱChoiceΛadminαΠτ͔Β৮ΕΔΑ͏ʹొ࿥ admin.site.register(Question) admin.site.register(Choice) QPMMTBENJOQZ ˔ σʔλϕʔεͷϨίʔυΛ؅ཧͰ͖Δศརػೳ ˓ IUUQMPDBMIPTUBENJO ˔ BENJOαΠτ΁ೖΔʹ͸·ͣ؅ཧϢʔβ͕ඞཁ ˓ DSFBUFTVQFSVTFSίϚϯυΛ࢖༻͢Δ ˔ ӾཡͰ͖ΔΑ͏ʹࣗ࡞ͷϞσϧΛొ࿥͢Δ BENJOαΠτ΁ొ࿥ !82

    Slide 83

    Slide 83 text

    No content

    Slide 84

    Slide 84 text

    No content

    Slide 85

    Slide 85 text

    ˔ Ϟσϧͷ@@TUS@@ ΛΦʔόʔϥΠυ͢Δ ˓ ͜Ε͸ͦͷΦϒδΣΫτΛQSJOUͨ͠ͱ͖ʹݺ͹ΕΔɼ จࣈྻԽͷϝιουͰ͋Δ ˓ DPNNJUGEFB ˔ BENJOαΠτͷΧελϚΠζͷํ๏͸ඇৗʹ๛෋ ˔ ޙͰ΍Γ·͢ BENJOͰͷද໊ࣔΛมߋ !85

    Slide 86

    Slide 86 text

    1BSU جຊػೳͰ
 ςϯϓϨʔτͱ7JFX !86

    Slide 87

    Slide 87 text

    ˔ ࣭໰Ұཡϖʔδ ˓ ࠷৽ͷ࣭໰Λ͍͔ͭ͘දࣔ ˔ ࣭໰ৄࡉϖʔδ ˓ ݁ՌΛදࣔͤͣɺ࣭໰ςΩετͱ౤ථϑΥʔϜΛදࣔ ˔ ࣭໰݁Ռϖʔδ ˓ ಛఆͷ࣭໰ͷ݁ՌΛදࣔ ˔ ౤ථϖʔδ ˓ ಛఆͷ࣭໰ͷબ୒Λ౤ථͱͯ͠ड෇ ࡞ΔϖʔδҰཡ !87

    Slide 88

    Slide 88 text

    urlpatterns = [ # Ұ෦লུ # ஫ҙɿ຤ඌͷεϥογϡΛ๨Εͳ͍Α͏ʹ # `/polls/1/` path('/', views.detail, name='detail'), # `/polls/1/results/` path('/results/', views.results, name='results'), # `/polls/1/vote/` path('/vote/', views.vote, name='vote'), ] QPMMTVSMTQZ ˔ ୯७ͳ7JFXΛॻ͍ͯΞΫηεͯ͠ΈΔ ˓ DPNNJUBDCD ˔ 63-ͷهड़ͷ࢓ํʹ׳ΕΑ͏ ˓ ܕ໊ม਺໊ͰWJFXؔ਺Ͱड͚औΔ͜ͱ͕ग़དྷΔ 7JFXͷϓϩτλΠϓΛ࡞੒ !88

    Slide 89

    Slide 89 text

    {% if latest_question_list %} {% else %} {# ࣭໰͕Ұͭ΋ొ࿥͞Ε͍ͯͳ͔ͬͨ৔߹ #}

    No polls are available.

    {% endif %} ˔ %KBOHP5FNQMBUF-BOHVBHFʢ%5-ʣΛ࢖༻ ˓ \^ͱ\\^^ɼ\^Ͱғ·Εͨൣғ͸%5-ͷจ๏ ˓ +JOKBͳͲͷςϯϓϨʔτΤϯδϯ΋࢖͑Δ ˔ ม਺͸7JFX͔ΒࣙॻࣜͷΦϒδΣΫτͰ౉͞ΕΔ ˓ DPNNJUCCC )5.-ͷςϯϓϨʔτΛॻ͘ !89 QPMMTUFNQMBUFTQPMMTJOEFYIUNM औಘ࣭ͨ͠໰ͷ ݸ਺͚ͩGPSϧʔϓ͕ ࣮ߦ͞ΕΔ ˡϦετͷத਎͕ۭͳΒ'BMTFʹͳΔ

    Slide 90

    Slide 90 text

    ˔ ҎԼͷ༷ͳΊͪΌͪ͘Ό؆୯ͳ)5.-͕ग़དྷΔ ˓ *G΍GPSɼίϝϯτ෦෼͸ۭനۭߦʹͳΔ ˓ )5.-ͰΤεέʔϓ͕ඞཁͳจࣈ͸উखʹΤεέʔϓ ͯ͘͠ΕΔ ੜ੒͞ΕΔ)5.- !90

    Slide 91

    Slide 91 text

    ˔ ༷ʑͳγϣʔτΧοτϝιου͕ଘࡏ͢Δ ˓ SFOEFSɿϨϯμϦϯάͨ͠)5.-Λฦ͢ ˓ SFEJSFDUɿࢦఆͨ͠63-ʹϦμΠϨΫτͤ͞Δ ˓ HFU@PCKFDU@PS@ɿࢦఆ͞ΕͨϨίʔυ͕ͳ͚Ε͹ Λฦ͢ ˓ HFU@MJTU@PS@ɿࢦఆ͞ΕͨϨίʔυʢෳ਺ʣ͕ଘ ࡏ͠ͳ͚Ε͹Λฦ͢ ˔ ͜ΕΒΛ࢖ͬͯઌ΄ͲͷίʔυΛ؆ུԽͰ͖Δ ˓ DPNNJUGEBDF EKBOHPTIPSUDVUT !91

    Slide 92

    Slide 92 text

    ˔ ΞΫηεͨ͠63-͕ଘࡏ͠ͳ͔ͬͨ৔߹ʹฦ͞Ε Δεςʔλείʔυ ˔ ཁૉ͕ଘࡏ͠ͳ͍৔߹ɼ͜Ε͕ฦͬͯཉ͍͠ ˓ ͱ͍͏͔ͦ͏ͳ͍ͬͯͳ͍αΠτ͸ΰϛ ˓ ͨ·ʹΛฦ͢Α͏ͳΫιαΠτ͕͋Δ ˔ ݱࡏৄࡉϖʔδʹଘࡏ͠ͳ͍JEͰΞΫηεͯ͠΋ ͕ฦͬͯ͘Δɽ ˓ Λฦ͢Α͏ʹमਖ਼DPNNJUG ˓ ͦͷίʔυΛ؆ུԽDPNNJUDGE  !92

    Slide 93

    Slide 93 text

    {{ question.question_text }}

      {# ࣭໰ʹؚ·ΕΔશͯͷબ୒ࢶΛදࣔ͢Δ #} {% for choice in question.choice_set.all %} {# forͰҰͭҰͭͷબ୒ࢶʹΞΫηε #}
    • {{ choice.choice_text }}
    • {% endfor %}
    QPMMTUFNQMBUFTQPMMTEFUBJMIUNM ˔ ࣭໰಺༰͚ͩͰແ͘ɼͦΕʹඥ෇͘બ୒ࢶ΋දࣔ ͍ͨ͠ ˔ EFUBJMIUNMΛมߋ͢Δ ˓ DPNNJUDEE ৄࡉϖʔδʹػೳ௥Ճ !93 ϦϨʔγϣϯઌͷ ཁૉΛશͯऔಘ

    Slide 94

    Slide 94 text

    {# URLΛϋʔυίʔυ͢ΔͷΛࣙΊΔɽ'detail'͸urls.pyͰࢦఆͨ͠nameʹ͋ͨΔɽ #} {# ͦͷޙʹURLύε্ͷม਺Λ༩͑Δɽ͜ͷ৔߹͸࣭໰ͷidɽ #} {# ྫ͑͹URLΛมߋͨ͘͠ͳͬͯ΋urls.pyͷΈΛมߋ͢Ε͹ɼࣗಈతʹͪ͜ΒͷURL΋मਖ਼͞ΕΔɽ #}
  • {{ question.question_text }}
  • QPMMTUFNQMBUFTQPMMTJOEFYIUNM ˔ ݱࡏJOEFYIUNMͰ͸QPMMT\\RVFTUJPO@JE^^ ˔ ྫ͑͹QPMMTRVFTUJPO\\RVFTUJPO@JE^^ͳͲʹ มߋͨ͘͠ͳͬͨΒʁ ˓ VSMTQZ͚ͩͰͳ͘ςϯϓϨʔτʹ΋มߋ͕ඞཁ ˔ ςϯϓϨʔτ্Ͱಈతʹ63-ੜ੒͢Δػೳ͕͋Δ ˓ DPNNJUDG 63-ͷϋʔυίʔυΛࣙΊΔ !94

    Slide 95

    Slide 95 text

    {# 'app_name:name'ͱ͍͏ܗࣜͰࢦఆ͢Δɽ'detail'͸urls.pyͰࢦఆͨ͠nameʹ͋ͨΔɽ #}
  • {{ question.question_text }}
  • QPMMTUFNQMBUFTQPMMTJOEFYIUNM ˔ ৄࡉදࣔͷ63-ʹEFUBJMͱ͍͏໊લΛ෇͚ͨ ˔ ଞͷΞϓϦͰ΋ಉ໊͡લΛ࢖͍ͨ͘ͳͬͨΒʁʁ ˓ ͜ͷ63-ͷ໊લ෇͚Λ͜ͷΞϓϦ಺Ͱด͍ͨ͡ ˔ VSMTQZʹBQQ@OBNFͱ͍͏ม਺Λ௥Ճ͢Δ ˓ DPNNJUBCDF 63-ͷ໊લۭؒΛ෼཭͢Δ !95 QPMMTVSMTQZ app_name = 'polls' urlpatterns = [ # লུ

    Slide 96

    Slide 96 text

    1BSU ϑΥʔϜͱͷ࿈ܞ  ൚༻7JFX !96

    Slide 97

    Slide 97 text

    ˔ ࣍͸Ϣʔβ͔ΒσʔλΛ1045ͯ͠΋Β͏ ˓ )5.-ͷGPSNλάΛ࢖༻͢Δ ˓ DPNNJUEFG ౤ථػೳΛ෇͚Δ !97

    {{ question.question_text }}

    {# Τϥʔ͕͋Δ৔߹දࣔ #} {% if error_message %}

    {{ error_message }}

    {% endif %} {# ౤ථϖʔδʹରͯ͠POST͢ΔϑΥʔϜ #} {% for choice in question.choice_set.all %} {# ಛघͳม਺forloop͸ͦͷϧʔϓதͷΧ΢ϯτΛऔಘ͢Δɽ #} {{ choice.choice_text }}
    {% endfor %} QPMMTUFNQMBUFTQPMMTEFUBJMIUNM

    Slide 98

    Slide 98 text

    ˔ $SPTT4JUF3FRVFTU'PSHFSJFTʢ$43'ʣ ˓ ΫϩεαΠτϦΫΤετϑΥʔδΣϦ ˔ 'PSNʹΑΔ1045΋ॴḨ͸ͨͩͷ)551௨৴ ˔ ѱҙͷ͋ΔύϥϝʔλΛؚΜͩ63-ΛϩάΠϯ
 ࡁΈͷϢʔβʹ౿·ͤΔ͜ͱͰ߈ܸͰ͖Δ ˓ ϩάΠϯͯ͠Ͱ͖Δ͜ͱ͸શͯग़དྷΔ $43' !98 IPHFʹ ౤ථ͠Ζ ᠘αΠτ 1045 QPMMTWPUF ϙνοͱͳ IPHF 

    Slide 99

    Slide 99 text

    ˔ %KBOHPʹ͸͜ͷ$43'Λ๷͙࢓૊Έ͕͋Δ ˓ ςϯϓϨʔτͷGPSNதʹ\DTSG@UPLFO^ͱॻ͍ͯ ͓͚ͩ͘Ͱྑ͍ \DTSG@UPLFO^ !99 ᠘αΠτ 1045 UPLFO͕ ͳ͍PSҧ͏ ϦδΣΫτʂ UPLFOΛ஌Βͳ͍ ϥϯμϜͳUPLFOΛൃߦ ϑΥʔϜʹຒΊࠐΈ 1045 0,ʂ

    Slide 100

    Slide 100 text

    ˔ EKBOHPWJFXTHFOFSJDʹ͸యܕతͳ7JFXͷ
 Ϋϥε͕طʹؚ·Ε͍ͯΔ ˓ ͍͔ͭ͘ͷύϥϝʔλΛઃఆ͢Δ͚ͩͰ׬੒͢Δ ˓ ΋ͪΖΜॲཧ͸ΧελϚΠζͰ͖Δ ˔ ؔ਺ϕʔεͰ͸(&5ͱ1045ΛJGͰ෼͚ͳ͍ͱ͍͚ͳ͍ ͕ɼΫϥεϕʔεͷ൚༻7JFXͰ͸ͦ΋ͦ΋ॲཧ͢Δؔ ਺͕෼͔Ε͍ͯΔͷͰՄಡੑ͕ߴ·Δ ˔ ඞཁͳॲཧ͕͋Β͔͡Ίهड़͞Ε͍ͯΔͷͰ࣮૷Λ؆ ུԽͰ͖Δ ˓ DPNNJUFDC ൚༻7JFX !100

    Slide 101

    Slide 101 text

    ˔ -JTU7JFX ˓ ˓˓PCKFDUTBMM Ͱෳ਺ͷཁૉΛऔ͖ͬͯͯදࣔ ˓ HFU@RVFSZTFU ΛΦʔόʔϥΠυ͢Δ͜ͱͰpMUFSΛט· ͤΔ͜ͱ͕Ͱ͖Δɽ ˔ %FUBJM7JFX ˓ ˓˓PCKFDUTHFU ͰҰͭͷཁૉΛऔ͖ͬͯͯදࣔ ˔ $SFBUF7JFXɾ6QEBUF7JFXɾ%FMFUF7JFX ˓ Ϩίʔυͷ࡞੒ɾߋ৽ɾ࡟আΛߦ͏ͨΊͷ7JFX ˔ 5FNQMBUF7JFX ˓ ࠷΋൚༻తͳ7JFXɽॲཧ͸ࣗ෼Ͱॻ͘ɽ ୅දతͳ൚༻7JFX !101

    Slide 102

    Slide 102 text

    1BSU Ϣχοτςετ !102

    Slide 103

    Slide 103 text

    ˔ %KBOHPʹ͸VOJUUFTU5FTU$BTFΛܧঝͨ͠ EKBOHPUFTU5FTU$BTF͕͋Δ ˓ ࢖͍ํ͸΄΅Ұॹɽ ˔ NBOBHFQZUFTUΞϓϦ໊ͰVOJUUFTU5FTU$BTFΛ ܧঝͨ͠ςετΛࣗಈ࣮ߦ͢Δ ˔ %KBOHP͸ࣗಈͰςετ༻ͷσʔλϕʔεΛςετ ࣌ʹ࡞੒ɼऴྃ࣌ʹഁغͯ͘͠ΕΔ ˓ %#࡞੒ͷݖݶ͕ඞཁͳ͜ͱʹ஫ҙʢ42-JUFҎ֎ʣ ˔ ࠓճ͸࣌ؒͷ౎߹্ল͖·͢ ςετ͸ΈΜͳ΍ͬͨํ͕͍͍Α !103

    Slide 104

    Slide 104 text

    1BSU ੩తϑΝΠϧͷ௥Ճ !104

    Slide 105

    Slide 105 text

    ˔ $44΍+4ɼը૾ͳͲ%KBOHP͕खΛՃ͑ͳ͍
 ϑΝΠϧ ˔ 8FCαΠτͷ૷০ʹ͸ඞਢ ˔ UFNQMBUFTͱಉ͡Α͏ʹTUBUJDͱ͍͏
 σΟϨΫτϦͱͦͷ௚ԼʹΞϓϦέʔγϣϯ໊ͷ σΟϨΫτϦΛ࡞ͬͯೖΕ͓ͯ͘ ˓ DPNNJUDF ˔ ࣮ࡍͷӡ༻࣌ʹ͸8FCαʔό͕഑৴͢Δ ੩తϑΝΠϧͬͯʁ !105

    Slide 106

    Slide 106 text

    ӡ༻࣌ͷΠϝʔδ !106

    Slide 107

    Slide 107 text

    {# ੩తϑΝΠϧΛಡΉ͜Ή #} {% load static %} {# style.cssΛಡΈࠐΉ #} QPMMTUFNQMBUFTQPMMTEFUBJMIUNM ˔ ςϯϓϨʔτͰ\MPBETUBUJD^͢ΔͱಡΈ
 ࠐΊΔΑ͏ʹͳΔ ˓ \TUBUJDΞϓϦ໊ϑΝΠϧύε^ ˔ 63-Λੜ੒͢ΔͷͰɼIUNMλάͷϦϯΫཁૉ
 ͳͲʹೖΕΔ ੩తϑΝΠϧͷಡΈࠐΈ !107

    Slide 108

    Slide 108 text

    ˔ ֤ςϯϓϨʔτΛຖճશͯॻ͍͍ͯΔͷ͸ແବ͕ ଟ͍ ˓ IUNMͷIFBEͰ$44΍+4ΛಡΈࠐΜͰ͍Δ෦෼ ˓ ϔομɾϑολͳͲ ˔ ܧঝͱ͍͏࢓૊Έ͕͋Δ ˔ ޙ͔ΒίϯςϯπΛࠩ͠ࠐΈ͍ͨ෦෼ʹ
 \CMPDLίϯςϯπ໊^\FOECMPDL^Λ
 ೖΕ͓ͯ͘ ˓ DPNNJUGBE ςϯϓϨʔτͷܧঝ !108

    Slide 109

    Slide 109 text

    {% load static %} {# λΠτϧϒϩοΫ #} {% block title %}{% endblock %} {# style.cssΛಡΈࠐΉ #} {# ϝΠϯίϯςϯπΛ഑ஔ͢Δ #} {% block content %}{% endblock %} ϕʔεͱͳΔςϯϓϨʔτ !109 QPMMTUFNQMBUFTQPMMTCBTFIUNM

    Slide 110

    Slide 110 text

    {# base.htmlΛܧঝ #} {% extends 'polls/base.html' %} {# λΠτϧΛมߋ #} {% block title %}࣭໰Ұཡ{% endblock %} {# ϝΠϯίϯςϯπ #} {% block content %} {% if latest_question_list %} {% else %}

    No polls are available.

    {% endif %} {% endblock %} ϕʔεΛܧঝͯ͠࡞੒ !110 QPMMTUFNQMBUFTQPMMTJOEFYIUNM ܧঝ͢ΔςϯϓϨʔτΛ໌ࣔ ࢦఆͨ͠CMPDLΛ ΦʔόʔϥΠυ

    Slide 111

    Slide 111 text

    ˔ શମͰಉ͡ϕʔεςʔϚΛ࢖༻͢Δ৔߹ ˔ ԼهͷཁྖͰͰ͖Δ ˓ ϓϩδΣΫτ௚ԼʹUFNQMBUFTσΟϨΫτϦΛ࡞੒ ˓ TFUUJOHTQZʹͦͷ৔ॴΛهड़ɾϕʔεΛஔ͘ ˓ DPNNJUCF TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [ os.path.join(BASE_DIR, 'templates') ], # ҎԼུ TBNQMFTFUUJOHTQZ ϕʔεΛϓϩδΣΫτશମͰڞ༗ !111 XFCBQQ@QSBDUJDFTBNQMFTUFNQMBUFT

    Slide 112

    Slide 112 text

    1BSU ؅ཧαΠτͷΧελϚΠζ !112

    Slide 113

    Slide 113 text

    class QuestionAdmin(admin.ModelAdmin): """࣭໰ͷAdminαΠτͰͷදࣔΛΧελϚΠζ͢ΔΫϥε""" # දࣔ͢ΔϑΟʔϧυͷॱ൪Λมߋ fields = ['pub_date', 'question_text'] # QuestionͱChoiceΛadminαΠτ͔Β৮ΕΔΑ͏ʹొ࿥ admin.site.register(Question, QuestionAdmin) QPMMTBENJOQZ ˔ ؅ཧαΠτͷΧελϚΠζΛهड़͢Δ ˔ ·ͣ͸؆୯ʹදࣔॱংΛม͑Δ͚ͩ ˓ DPNNJU BENJOQZ !113

    Slide 114

    Slide 114 text

    class QuestionAdmin(admin.ModelAdmin): """࣭໰ͷAdminαΠτͰͷදࣔΛΧελϚΠζ͢ΔΫϥε""" # දࣔ͢ΔϑΟʔϧυΛηΫγϣϯ͝ͱʹ෼͚Δ fieldsets = [ # ηΫγϣϯ໊ແ͠ (None, {'fields': ['question_text']}), # ηΫγϣϯ໊༗Γ ('Date information', {'fields': ['pub_date']}) ] QPMMTBENJOQZ ˔ ϞσϧͷΧϥϜ͕ଟ͘ͳͬͯ͘Δͱ·ͱ·Γ͝ͱ ʹ෼͚ͨ͘ͳΔ ˔ ηΫγϣϯ໊Λ෇͚ͯ෼͚Δ͜ͱ͕ग़དྷΔ ˓ DPNNJUGB ද߲ࣔ໨ͷηΫγϣϯ෼͚ !114

    Slide 115

    Slide 115 text

    No content

    Slide 116

    Slide 116 text

    class ChoiceInline(admin.StackedInline): """Questionଆ͔Β΋ChoiceΛ৮ΕΔΑ͏ʹ͢Δ""" model = Choice # දࣔ਺ͱͯ͠࠷௿3͜ͿΜҎ্༻ҙ͢Δ extra = 3 class QuestionAdmin(admin.ModelAdmin): # লུ inlines = [ChoiceInline] QPMMTBENJOQZ ˔ ࠓ͸$IPJDFଆ͔Β͔͠ϦϨʔγϣϯΛઃఆͰ͖ͳ͍ ˔ 2VFTUJPOଆ͔Β΋ࣗ༝ʹ$IPJDFΛ࡞੒͍ͨ͠ ˓ BENJO4UBDLFE*OMJOFΛ࢖༻͢Δ ˓ DPNNJUCEEE ϦϨʔγϣϯઌ͔Βͷࢀর !116

    Slide 117

    Slide 117 text

    No content

    Slide 118

    Slide 118 text

    class ChoiceInline(admin.TabularInline): """Questionଆ͔Β΋ChoiceΛ৮ΕΔΑ͏ʹ͢Δ""" model = Choice # දࣔ਺ͱͯ͠࠷௿3͜ͿΜҎ্༻ҙ͢Δ extra = 3 class QuestionAdmin(admin.ModelAdmin): # লུ inlines = [ChoiceInline] QPMMTBENJOQZ ˔ දࣔ಺༰͕গͳ͍৔߹ɼΧϥϜ਺ͿΜཱͯʹੵ· ΕΔͱը໘Λѹഭ͢Δ ˔ 5BCVMBS*OMJOFΛ࢖༻͢Δ ˓ DPNNJUD ςʔϒϧͰදࣔ !118

    Slide 119

    Slide 119 text

    No content

    Slide 120

    Slide 120 text

    class QuestionAdmin(admin.ModelAdmin): """࣭໰ͷAdminαΠτͰͷදࣔΛΧελϚΠζ͢ΔΫϥε""" # adminͷҰཡϖʔδͰදࣔ͢Δ߲໨ list_display = ('question_text', 'pub_date', 'was_published_recently') # লུ QPMMTBENJOQZ ˔ ࠓ͸࣭໰಺༰͚͕ͩදࣔ͞Ε͍ͯΔ ˔ ౤ߘ೔࣌ͱ͔΋ද͍ࣔͨ͠ ˔ MJTU@EJTQMBZΛมߋ͢Δ ˓ DPNNJU ҰཡͷදࣔΛมߋ !120

    Slide 121

    Slide 121 text

    No content

    Slide 122

    Slide 122 text

    class QuestionAdmin(admin.ModelAdmin): """࣭໰ͷAdminαΠτͰͷදࣔΛΧελϚΠζ͢ΔΫϥε""" # লུ # ද߲ࣔ໨Λઃఆ inlines = [ChoiceInline] # ϑΟϧλϦϯά͢Δ߲໨ list_filter = ['pub_date'] QPMMTBENJOQZ ˔ ౤ߘ೔࣌ͰߜΓࠐΉػೳΛ෇͚Δ ˔ MJTU@pMUFSΛ࢖͏ ˓ ΧϥϜͷϦετΛ౉͢ ˓ DPNNJUCD ߜΓࠐΈػೳ !122

    Slide 123

    Slide 123 text

    νϡʔτϦΞϧऴྃʂ !123

    Slide 124

    Slide 124 text

    ˔ ը໘ͷ૷০ ˔ ϨεϙϯγϒରԠ ˔ ϢʔβϩάΠϯػೳͷ෇Ճ ˔ 1045͞Εͯ͘ΔσʔλΛόϦσʔγϣϯ͢Δͨ Ίͷ'PSNΫϥεͷ࡞੒ ˔ σʔλදࣔํ๏ͷ޻෉ʜFUD ·ͩ·ͩ΍Δ͜ͱ͸͋Δ !124

    Slide 125

    Slide 125 text

    ˔ %KBOHP(JSMT5VUPSJBM ˓ ೔ຊޠ൛͕͋Δͷ͕ಛ௃ ˓ IUUQTEKBOHPHJSMTKBQBOHJUCPPLTJPXPSLTIPQ@UVUPSJBMKQDPOUFOU IPX@UIF@JOUFSOFU@XPSLTJOEFYIUNM ˔ %KBOHPೖ໳ʢ(FFL-BC/"("/0ʣ ˓ %KBOHP #PPUTUSBQͷνϡʔτϦΞϧ ˓ IUUQTRJJUBDPNLBLJ@LJUFNTDBEBDEDD ˔ %KBOHP#SPUIFST ˓ ΘΓͱৄ͘͠ॻ͔Ε͍ͯΔ ˓ IUUQXXXEKBOHPCSPUIFSTDPNUVUPSJBMTCMPH@BQQ ଞͷνϡʔτϦΞϧͷ঺հ !125

    Slide 126

    Slide 126 text

    ͓ർΕ͞·Ͱͨ͠ʙ !126