Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
query_stringのはなし / how to use query string
Search
ryo kato
October 18, 2018
0
1.5k
query_stringのはなし / how to use query string
ryo kato
October 18, 2018
Tweet
Share
More Decks by ryo kato
See All by ryo kato
PyCon傾向と対策 / pycon-trend-and-countermeasures
ryokato
0
200
Featured
See All Featured
What's in a price? How to price your products and services
michaelherold
246
12k
The Straight Up "How To Draw Better" Workshop
denniskardys
235
140k
Agile that works and the tools we love
rasmusluckow
329
21k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
130
19k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
Git: the NoSQL Database
bkeepers
PRO
431
65k
Documentation Writing (for coders)
carmenintech
73
5k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.8k
The Cult of Friendly URLs
andyhume
79
6.5k
A Modern Web Designer's Workflow
chriscoyier
695
190k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
182
54k
Optimizing for Happiness
mojombo
379
70k
Transcript
query_stringͷͳ͠ ୈճ&MBTUJDTFBSDIษڧձɹݕࡧฤ
About me Ճ౻ྒྷ 3ZP,BUP ຊܦࡁ৽ฉࣾ "1*ɾݕࡧ %KBOHP &MBTUJDTFBSDI
agenda
w ܦిࢠ൛Ͱͷ&MBTUJDTFBSDIݕࡧʹ͍ͭͯ w RVFSZTUSJOHʹ͍ͭͯ෮श w ฐࣾͰRVFSZTUSJOHΛ͏্Ͱࠔͬͨ
ܦిࢠ൛ʹ͍ͭͯ
ܦిࢠ൛Ͱͷ&MBTUJDTFBSDIͷར༻ ɾݕࡧ هࣄݕࡧ اۀݕࡧ ۀछݕࡧ τϐοΫɾ࿈ࡌ໊ͷݕࡧ ɹΧςΰϦηΫγϣϯͰͷهࣄҰཡऔಘ ɾϩάੳ ܦిࢠ൛ͷΞϓϦ։ൃΛࢧ͑Δϩά׆༻ज़ ɹɹIUUQTTQFBLFSEFDLDPNCVOHPVNFOJLLFJMPH
ݕࡧ"1*पΓͷγεςϜ DMJFOU "1*(8 TFBSDI"1* TFBSDIBENJO 3FEJT &MBTUJDTFBSDI EKBOHP ΞϓϦέʔγϣϯ ࣙॻཧ
ෳࡶͳΫΤϦʹରԠ͢Δ ྫ͑ ɹɹDPNQBOZ͕ʮຊܦࡁ৽ฉࣾʯͷهࣄͱ ɹɹUJUMFʹʮ"*ʯΛؚΈDBUFHPSZ͕ʮܦࡁʯͰͳ͍هࣄͱɹ ɹɹUZQF͕ʮே༦ץʯͷهࣄ ͷΑ͏ͳ݅ͰݕࡧͰ͖Δඞཁ͕͋Δɻ ݕࡧཁ݅̍
"*03ࢲͷཤྺॻ03 "*ਓೳ/05DBUFHPSZܦࡁ 03 ग़൛03 ຊ/05 ൜ࡑ03ສҾ͖ 03 DPNQBOZຊܦࡁܦࡁ03 DPNQBOZܦ#1 /05DBUFHPSZܦࡁ
˞ΠϝʔδͰ͢ɻ ྫ
ݕࡧ݁Ռ࠶ݱΛ༏ઌͯ͠ είΞϦϯάͰͳ͘ɺهࣄͷ৴࣌ࠁͰιʔτ ࠷৽ͷهࣄΛ༏ઌͯ͠ग़͢ඞཁ͕͋Δɻ ݕࡧཁ݅̎
ࣗલͷRVFSZQBSTFS RVFSZTUSJOHRVFSZΛ࠾༻ Ҏ্ͷཁ݅Λ౿·͑ɺ࣮ͷ͞Λ༏ઌͯ͠
query string queryʹ͍ͭͯ෮श
w NBUDIBMMRVFSZ w DPNQPVOERVFSJFT CPPMRVFSZ GVODUJPO@TDPSF w UFSNMFWFMTRVFSZ w GVMMUFYURVFSJFT
&MBTUJDTFBSDIͷRVFSZ
w NBUDI w NBUDIQISBTFNBUDIQISBTFQSFpY w NVMUJ@NBUDI w DPNNPO w RVFSZ@TUSJOH
w TJNQMFRVFSZTUSJOH GVMMUFYURVFSJFT
NBUDIRVFSZ యܕతͳશจݕࡧ༻్Ͱ͏
RVFSZTUSJOHRVFSZ ݕࡧ݅ʹMVDFOFγϯλοΫεͷݕࡧࣜΛهࡌͰ͖Δ
RVFSZTUSJOHRVFSZ w ΤΩεύʔτϢʔβʔ͚ w -VDFOFγϯλοΫεͷݕࡧࣜΛهࡌͰ͖Δ w ݕࡧΫΤϦ͕؆ܿʹ͔͚Δ
w 'JFMEOBNF w XJMEDBSET w SFHVMBSFYQSFTTJPO w SBOHF w CPPMFBO
w HSPVQJOH -VDFOFγϯλοΫε
-VDFOFγϯλοΫεpFMEOBNF ࢦఆͨ͠pFMEҎ֎ͷpMFEΛݕࡧରʹͰ͖Δ ˠUJUMF"*03CPEZ"*03DPNQBOZຊܦࡁ৽ฉࣾ
RVFSZTUSJOHRVFSZͷpFMEࢦఆ ɾEFGBVMU@pFMEύϥϝʔλ ࢦఆͨ͠ϑΟʔϧυΛݕࡧରʹ͢Δɻ ࢦఆ͕ͳ͍߹ͯ͢ͷpFMEΛରʹ͢Δɻ ɾpFMETύϥϝʔλ ෳϑΟʔϧυΛࢦఆͰ͖ΔɻɹFYpFMET<UJUMF lCPEZ> XJMEDBSE͑ΔɻɹFYpFMET<lDJUZ z>
RVFSZTUSJOH NBUDI lUZQFzl5FSN2VFSZz lEFTDSJQUJPOzlCPEZ"*z -VDFOFΠϯσοΫεʹର࣮ͯ͠ߦ͞ΕΔΫΤϦ lUZQFzl5FSN2VFSZz lEFTDSJQUJPOzlCPEZ"*z 1SPpMF 1SPpMF
RVFSZTUSJOH NVMUJ@NBUDI UZQF%JTKVODUJPO.BY2VFSZ EFTDSJQUJPO CPEZ"*cUJUMF"* -VDFOFΠϯσοΫεʹର࣮ͯ͠ߦ͞ΕΔΫΤϦ 1SPpMF 1SPpMF
UZQF%JTKVODUJPO.BY2VFSZ EFTDSJQUJPO CPEZ"*cUJUMF"*
RVFSZTUSJOHUZQFCFTU@pFMET RVFSZTUSJOHUZQFNPTU@pFMET UZQF%JTKVODUJPO.BY2VFSZ EFTDSJQUJPO CPEZ"*cUJUMF"* UZQF#PPMFBO2VFSZ EFTDSJQUJPOCPEZ"*UJUMF"*
-VDFOFΠϯσοΫεʹର࣮ͯ͠ߦ͞ΕΔΫΤϦ 1SPpMF 1SPpMF
MVDFOFγϯλοΫεCPPMFBO "/% 03 /05 c͕͑Δ
ಉ༷ͷ݅ΛCPPMΛ͏ͱ ɾݕࡧରͷϑΟʔϧυ͕ݻఆͰͳ͍߹ ಈతʹՃ͢Δඞཁ͕͋Δ ɾ͕݅ෳࡶʹͳΔͱ֊͕ਂ͘ͳΔ ɾΫΤϦʹΑͬͯNBUDI@QISBTFͱ͔ ɹNVMUJ@NBUDI ɾύʔαʔΛॻ͍ͨΓ͢Δ͜ͱͰରԠ͕ ɹඞཁɹ㱺ɹෳࡶͰͭΒ͔ͬͨ
RVFSZTUSJOHύϥϝʔλ w EFGBVMUpFME w EFGBVMU@PQFSBUPS w GV[[JOFTT w BOBMZ[FS w
IUUQTXXXFMBTUJDDPHVJEFFOFMBTUJDTFBSDISFGFSFODFDVSSFOU RVFSZETMRVFSZTUSJOHRVFSZIUNM WFSTJPOʹΑͬͯ૿͑ͨΓݮͬͨΓ͠·͢
w ΫΤϦͷهड़ָ͕ w ։ൃ͕͍ RVFSZTUSJOHͷར
w ύϥϝʔλʹΑͬͯੜ͞ΕΔΫΤϦ͕େ͖͘มΘΔͷͰEFTDSJQUJPOΛ֬ೝ ͢Δ w pFMEࢦఆ͢Δ w ෳࡶͳΫΤϦΛ࡞Γ์ w WFSTJPOʹΑ༷͕ͬͯมΘΔ RVFSZTUSJOHͷؾΛ͚ͭΔϙΠϯτ
ସҊͱͯ͠
TJNQMFRVFSZTUSJOH RVFSZTUSJOHͷγϯϓϧͳߏจΫΤϦFY c lz ΫΤϦͷهड़ϛε͕͋ͬͯΤϥʔ͕ൃੜ͠ͳ͍
TJNQMFRVFSZTUSJOH UZQF#PPMFBO2VFSZ EFTDSJQUJPOUJUMF"*UJUMF"/%UJUMFDPNQBOZຊܦࡁ৽ฉࣾ -VDFOFγϯλοΫε͑ͣΩʔϫʔυʹͳΔͨΊҙ
ฐࣾͰͷࠔͬͨɾղܾࡦ
̍ɽʮ""/%#03$ʯ
w FMBTUJDTFBSDI -VDFOF ͷύʔεϧʔϧͰ03͕༏ઌ͞ΕΔ UZQF#PPMFBO2VFSZ EFTDSJQUJPO l CPEZB
CPEZCCPEZD
#PPMFBOPQFSBUPS-VDFOFಠࣗͷॲཧ͕ߦΘΕΔͨΊ ҰൠతͳCPPMFBOPQFSBUJPOͱҟͳΔɻ 03"/%/05Ͱ༏ઌ͞ΕΔɻ ΫΤϦ""/%#03$ Ϣʔβʔͷҙਤɿ ""/%# 03$ ࣮ࡍɹɹɹɹɹɿ""/% #03$
IUUQTMVDJEXPSLTDPNXIZOPUBOEPSBOEOPU ݪҼ
ղܾࡦ w ʮ ""/%# 03$ʯʹͳΔΑ͏ʹΫΤϦΛύʔε w ݕࡧ݁ՌΛΩʔϫʔυͷશҰகΛ༏ઌͯ͠هࣄͷ৴࣌ࠁͰιʔτ͢Δඞ ཁ͕͋ΔͨΊɺύʔαʔͰରԠ͢Δ͔͠ͳ͔ͬͨɻ w IUUQTRJJUBDPNPTBNVONVOJUFNTBFEBECDG
ҙ w ʮ"/% 03ʯΑΓʮ ʯͷ΄͏͕ਪ͞Ε͍ͯΔͷͰۃྗʮ ʯΛ͍· ͠ΐ͏ɻ w IUUQTXXXFMBTUJDDPHVJEFFOFMBTUJDTFBSDISFGFSFODFDVSSFOU RVFSZETMRVFSZTUSJOHRVFSZIUNM@CPPMFBO@PQFSBUPST
UZQF#PPMFBO2VFSZ EFTDSJQUJPO l CPEZB CPEZC CPEZD
̎ɽBVUP@HFOFSBUF@QISBTF@RVFSJFTΦϓγϣϯ͕EFQSFDBUFE
w FT̑ͰBVUP@HFOFSBUF@QIBSBTF@RVFSJFTύϥϝʔλΛ͍͕ͬͯͨFTͰ EVQMJDBUF͞Εͨɻ w ΘΓʹೖྗจࣈྻʹzzΛ͚ͭͳ͚Ε͍͚ͳ͍Β͍͠ w &Yʮ"*"/%ਓೳʯ㱺ʮz"*z"/%lਓೳzʯ w ͨͩ͠ɺ-VDFOFγϯλοΫεͱ͔ߟྀ͢Δඞཁ͕͋ͬͯ໘ͩͳͱ͍͏ײ͡
ͩͬͨɻ
w υΩϡϝϯτʹ ͨͿΜ ॻ͍ͯͳ͍͚Ͳɺύϥϝλͱ͔ͪΐͬͱͨ͠Β ͍͚ΔͬΆ͍ ղܾࡦ
FT EFTDSJQUJPO TQBO0S <TQBO/FBS <CPEZ౦ژ CPEZλϫʔ> USVF CPEZ౦ژλϫʔ>
CPEZ౦ژ
UZQFQISBTFΦϓγϣϯ໌ࣔతʹPQFSBUPSՃ FT
RVFSZl౦ژλϫʔ౦ژz EFTDSJQUJPO TQBO/FBS <TQBO0S <TQBO/FBS <CPEZ౦ژ CPEZλϫʔ> USVF
CPEZ౦ژλϫʔ> CPEZ౦ژ CPEZ> USVF 㱺l౦ژλϫʔ౦ژzͷϑϨʔζݕࡧ RVFSZl౦ژλϫʔ"/%౦ژz EFTDSJQUJPO +spanOr([spanNear([body:౦ژ, body:λϫʔ], 0, true), body:౦ژλϫʔ]) +body:"౦ژ ” 㱺 “౦ژλϫʔ” ͱ”౦ژ”ͷϑϨʔζݕࡧ
w εϖʔε͚ͩͰɺεϖʔεؚΜͩϑϨʔζݕࡧʹͳΔ w ෳΩʔϫʔυΛͦΕͧΕϑϨʔζݕࡧ͍ͨ͠߹PQFSBUPS͕ඞཁ w ฐࣾͰɺEFGBVMU@PQFSBUPS͕"/%ͷͨΊɺεϖʔε͕ΘΕ͍ͯΔͱ ͜Ζʹ ΛՃ͍ͯ͠Δɻ w FYʮ౦ژλϫʔɹ౦ژʯˠʮ౦ژλϫʔɹ
౦ژʯ
·ͱΊ
ϝϦοτ ɾগ͠ෳࡶͳ݅ͷΫΤϦͰ؆ܿʹهड़Ͱ͖Δ ɾ։ൃૣ͍ͷͰ։ൃॳظͰ͏ͷಛʹ͓͢͢Ί σϝϦοτ ɾύϥϝʔλͷ͍ํੜ͞ΕΔΫΤϦͳͲ ɹͳΜͱͳ͘Ͱ͏ͱҙਤ͠ͳ͍ݕࡧ݁ՌʹͳΔ ɾ༷͕݁ߏมΘΔ ɾύʔαʔͱ͔ͰؤுΔඞཁ͕ग़ͯ͘Δ
RVFSZ@TUSJOHRVFSZ ༻๏༻ྔकͬͯਖ਼͍͘͠·͠ΐ͏