Python Web¶}µo¹ê¾Ô ( ²Åé ¦r) |
§@ªÌ¡G¸³°¶©ú | Ãþ§O¡G1. -> µ{¦¡³]p -> Python |
ĶªÌ¡G |
¥Xª©ªÀ¡G¹q¤l¤u·~¥Xª©ªÀ | 3dWoo®Ñ¸¹¡G 45107 ¸ß°Ý®ÑÄy½Ð»¡¥X¦¹®Ñ¸¹¡I¡i¯Ê®Ñ¡j NT°â»ù¡G 525 ¤¸ |
¥Xª©¤é¡G9/1/2016 |
¶¼Æ¡G516 |
¥úºÐ¼Æ¡G0 |
|
¯¸ªø±ÀÂË¡G |
¦L¨ê¡G¶Â¥Õ¦L¨ê | »y¨t¡G ( ²Åé ª© ) |
|
¥[¤JÁʪ«¨® ¢x¥[¨ì§Úªº³Ì·R (½Ð¥ýµn¤J·|û) |
ISBN¡G9787121297335 |
§@ªÌ§Ç¡@|¡@ĶªÌ§Ç¡@|¡@«e¨¥¡@|¡@¤º®e²¤¶¡@|¡@¥Ø¿ý¡@|¡@§Ç |
(²Åé®Ñ¤W©Òz¤§¤U¸ü³sµ²¯Ó®É¶O¥\, ®¤¤£¾A¥Î¦b¥xÆW, YŪªÌ»Ýn½Ð¦Û¦æ¹Á¸Õ, ®¤¤£«OÃÒ) |
§@ªÌ§Ç¡G |
ĶªÌ§Ç¡G |
«e¨¥¡G |
¤º®e²¤¶¡G¥»®Ñ«ö·Ó¤@ÓWeb ²£«~±qµL¨ì¦³¡B±q²³æÅÜ´_Âø¡B±q°ò¦¨ì¶i¶¥ªº¹Lµ{¡A¦h¨¤«×¡B¥þ¤è¦ìÁ¿z¤FPython Web¶}µo¡C¤º®e¯A¤ÎWeb®Ø¬[¡B´ú¸Õ¡B¼Æ¾Ú®w¡B®ø®§¶¤¦C¡BªA°È¤Æ¡B«ùÄò¶°¦¨µ¥¡A§âºô¯¸¤uµ{ªº¥þ»ª®i²{¦bŪªÌªº²´«e¡A±q¨ä¤¤¥i¥H¤F¸ÑWeb¤uµ{±q¶}µo¨ì¤W½uªº§¹¾ã¬yµ{¡C¥t¥~¡A§@ªÌ¹ï·í«e²{¦b¥¿¦b¬y¦æªº§Þ³N©Î¤u¨ã¡A¦pFlask¡BCelery¡BJupyter¡BSupervisor¡BSaltStack¡BPandasµ¥³£¦³¸û¬°¸Ô²ÓªºÄÄz¡A¥i§@¬°§Þ³N¿ï«¬®Éªº°Ñ¦Ò¡C¹ï¤_Web ¶}µoªÌ¡B¨Ï¥ÎPython »y¨¥ªº¹Bºû¤uµ{®v©M¹Bºû¶}µo¤uµ{®v¡B·Q´£°ªPython §Þ¯àªº¶}µoªÌ¡B·Q¤F¸ÑPython Web ¶}µoªº¨ä¥L¶}µoªÌ¡A¥»®Ñ³£¾A¦X¾\Ū¡C |
¥Ø¿ý¡G²Ä1 ³¹ªìÃÑPython Web ¶}µo. . . . . 1 Python Web ¶}µo¤¶²Ð ¬°¤°¤\À³¸Ó¿ï¾ÜPython §@¬°Web ¶}µo»y¨¥ ¿ï¾ÜPython ÁÙ¬OPython Web ®Ø¬[¤¶²Ð ¥D¬yWeb ®Ø¬[ ¤p²³ªºWeb ®Ø¬[ ¿ï¾ÜWeb ®Ø¬[®ÉÀ³¿í´`ªºì«h ²Ä2 ³¹Web ¶}µo«eªº·Ç³Æ. . . . . . 7 ·f«Ø¤@Ó¯à¹B¦æªºµêÀÀ¾÷Àô¹Ò ¦w¸ËVirtualBox ¨Ï¥ÎVagrant ¦w¸Ë ¨Ï¥ÎDocker ¦w¸Ë ¥]ºÞ²z©MµêÀÀÀô¹Ò ¥]ºÞ²z ¨Ï¥Îpip ´À¥Neasy_install distribute¡Bdistutils ©Msetuptools entry_points ´¡¥ó¨t²Î µêÀÀÀô¹Ò virtualenv virtualenv ©w¨î¤Æ virtualenvwrapper virtualenv-burrito autoenv ¶i¶¥½g¡Gpip °ª¯Å¥Îªk ©R¥O¦Û°Ê¸É¥þ ´¶³q¥Î¤á¦w¸Ë ½s¿è¼Ò¦¡ ¨Ï¥Îdevapi §@¬°½w¦s¥N²zªA°È¾¹ PYPI ªº§¹¥þÃè¹³ ²Ä3 ³¹Flask Web ¶}µo. . . . . . 28 Flask ¤Jªù ¦w¸ËFlask ±qHello World ¶}©l °t¸mºÞ²z ½Õ¸Õ¼Ò¦¡ °ÊºAURL ³W«h ¦Û©w¸qURL Âà´«¾¹ HTTP ¤èªk °ß¤@URL ºc³yURL ¸õÂà©M«©w¦V ÅTÀ³ ÀRºA¤å¥óºÞ²z §Y´¡µø¹Ï ÂÅ¹Ï ¤l°ì¦W ©R¥O¦æ±µ¤f ¼ÒªO Jinja2 Mako ¨Ï¥ÎMySQL ¦w¸ËMySQL ©MÅX°Ê ³]¸mÀ³¥Î½ã¸¹©MÅv ¥ÎMySQLdb ¼gì¥Í»y¥y ¨Æ°È´£¥æ©M¦^ºu ORM ²¤¶ ¨Ï¥ÎSQLAlchemy ¨Ï¥ÎORM ¼Æ¾Ú®wÃöÁp ¦bFlask ¤¤¨Ï¥ÎSQLAlchemy °O¿ýºC¬d¸ß ²z¸ÑContext ¥»¦a½uµ{ Werkzeug ªºLocal flask.request ¨Ï¥Î¤W¤U¤å ¨Ï¥ÎLocalProxy ´À¥Ng ±q¹s¶}©l¹ê²{¤@Ó¤å¥ó¦«ºÞªA°È º¶ «·s³]¸m¹Ï¤ù¶ ¤U¸ü¶ ¹wÄý¶ µuÃì±µ¶ ²Ä4 ³¹Flask ¶}µo¶i¶¥. . . . . . 89 Flask ªº«H¸¹¾÷¨î Blinker ªº¨Ï¥Î Flask ¤¤¤º¸mªº«H¸¹ ¦Û©w¸q«H¸¹ «H¸¹q¾\ªº°ª¯Å¥Îªk Flask-Login ¤¤ªº«H¸¹ Flask ªºÂX®i Flask-Script Flask-DebugToolbar Flask-Migrate Flask-WTF Flask-Security Flask-RESTful Flask-Admin Flask-Assets Werkzeug ªº¨Ï¥Î DebuggedApplication ¼Æ¾Úµ²ºc ¥\¯à¨ç¼Æ ±K½X¥[±K ¤¤¶¡¥ó ²Ä5 ³¹REST ©MAjax . . . . . . 127 ¤°¤\¬OREST RESTful API ³]p«ü«n ¨Ï¥Î¦Wµü¨Óªí¥Ü¸ê·½ Ãöª`½Ð¨DÀY ¦X²z¨Ï¥Î½Ð¨D¤èªk©Mª¬ºA½X ¥¿½T¦a¨Ï¥ÎREST ¹ï¿é¥Xªºµ²ªG¤£¦A¥]¸Ë ¤£n°µ¥X¿ù»~ªº´£¥Ü ¨Ï¥Î´O®M¹ï¶H§Ç¦C¤Æ ª©¥» URI ¥¢®Ä©M¾E²¾ «H®§¹LÂo ³t«×¨î ½w¦s ¦}µo±±¨î ¨Ï¥ÎAjax ²Ä6 ³¹ºô¯¸¬[ºc. . . . . . . 140 Python À³¥ÎªA°È¾¹ WSGI ¨óij ±`¨£ªºWSGI ®e¾¹ Web ªA°È¾¹Nginx Web ªA°È¾¹»PÀ³¥ÎªA°È¾¹ªº°Ï§O ¬°¤°¤\n¿ï¾ÜNginx ¦w¸ËNginx ¨Ï¥ÎNginx ³¡¸pFlask À³¥Î ½w¦s¨t²ÎMemcached Libmc ¦w¸Ë°t¸m ¨Ï¥Îì¥ÍSQL ½w¦s ½w¦s§ó·sµ¦²¤ Memcached ¨Ï¥Îªº¸gÅç Áäȹï¼Æ¾Ú®wRedis ¾Þ§@Redis Redis À³¥Î³õ´º ¤À¤ù©M¶°¸sºÞ²z NoSQL ¼Æ¾Ú®wMongoDB ¬°¤°¤\¨Ï¥ÎNoSQL MongoDB ¨Ï¥Îpymongo ªº¨Ò¤l ¨Ï¥ÎMongoengine ªº¨Ò¤l MongoDB ¹ê½î¸gÅç ¤j«¬ºô¯¸¬[ºc¸gÅç ½w¦s t¸ü§¡¿Å °ª¥i¥Î ·~°È©î¤À ¶°¸s ²Ä7 ³¹¨t²ÎºÞ²z. . . . . . . 186 ¶iµ{ºÞ²zSupervisor Supervisor ²Õ¥ó °t¸mSupervisor ¨Ï¥ÎSupervisor À³¥Î³¡¸pFabric Fabric À³¥Î±µ¤f ¨Ï¥ÎFabric ºÞ²zFlask À³¥Î °t¸mºÞ²z¤u¨ãSaltStack ©MAnsible SaltStack Ansible ¨Ï¥ÎPsutil ¨Ï¥ÎSentry ¦¬¶°¿ù»~«H®§ ¦w¸Ë°t¸mSentry ±Ò°ÊSentry ³Ð«Ø¹Î¶¤©M¶µ¥Ø °t¸mSDK ¨Ï¥ÎStatsD¡BGraphite µ¥·f«ØWeb ºÊ±± °t¸mGraphite ¨Ï¥ÎStatsD °t¸mDiamond µo¥¬«ü¼Ð¶µ ¨Ï¥ÎGrafana ¨Ï¥ÎKenshin ²Ä8 ³¹´ú¸Õ©M«ùÄò¶°¦¨. . . . . . 233 ¨Ï¥Îunittest ©Mdoctest °µ´ú¸Õ unittest doctest ¨Ï¥Îpy.test ©Mmock py.test mock «ùÄò¶°¦¨ ¨Ï¥ÎTox ¶°¦¨ ²Ä9 ³¹®ø®§¶¤¦C©MCelery . . . . . 250 ¨Ï¥ÎBeanstalkd ¨Ï¥ÎBeanstalkc ²`¤J²z¸ÑRabbitMQ AMQP µêÀÀ¥D¾÷ ´¡¥ó¨t²Î ³q¹LWeb ©MREST API ºÞ²zRabbitMQ 259 ¬G»ÙÂಾ ¨Ï¥ÎCelery Celery ªº¬[ºc Celery §Ç¦C¤Æ ¦w¸Ë°t¸mCelery ±q¤@Ó²³æªº¨Ò¤l¶}©l «ü©w¶¤¦C ¨Ï¥Î¥ô°È½Õ«× ¥ô°È¸j©w¡B°O¿ý¤é§Ó©M«¸Õ ¦bFlask À³¥Î¤¤¨Ï¥ÎCelery ²`¤J²z¸ÑCelery Celery ªº¨Ì¿à ¥ô°È½Õ¥Î «H¸¹¨t²Î Worker ºÞ²z ºÊ±±©MºÞ²zCelery ¤l¥ô°È ¶i¶¥½g¡GCelery ³Ì¨Î¹ê½î ¨Ï¥Î¦Û°ÊÂX®i µ½¥Î»·µ{Debug ¦X²z¦w±Æ¥ô°È©P´Á ¦X²z¨Ï¥Î¶¤¦C©MÀu¥ý¯Å «OÃÒ·~°ÈÅ޿誺¨Æ°È©Ê Ãö³¬§A¤£·Qnªº¥\¯à ¨Ï¥Î¾\¦Z§YµI¼Ò¦¡ µ½¥ÎPrefetch ¼Ò¦¡ µ½¥Î¤u§@¬y ²Ä10 ³¹ªA°È¤Æ. . . . . . 288 ¬°¤°¤\»ÝnªA°È¤Æ RPC ®Ø¬[ ªA°È¤Æ±a¨Óªº°ÝÃD ·LªA°È¬[ºc ¨Ï¥ÎúÄriû@ ©w¸qIDL ¤å¥ó ªA°ÈºÝ¹ê²{ «È¤áºÝ¹ê²{ PIDL¡X¡X¨§Ã¤ªºªA°È¤Æ¹ê½î PIDL ¬[ºc ²Ä11 ³¹¼Æ¾Ú³B²z. . . . . . 305 ¨Ï¥ÎMapReduce °µ¤é§Ó¤ÀªR ¨Ï¥ÎMapReduce
¨Ï¥ÎDPark ¤À¥¬¦¡¤å¥ó¨t²ÎMooseFS Mesos °t¸mDPark Àô¹Ò ±qWordCount ¶}©l PV ¡® UV ²Îp ¼Æ¾Ú³øªí µo°e±a¦³¼Ë¦¡©Mªþ¥óªº¶l¥ó ³Ð«Øxlsx ¤å¥ó ¨Ï¥ÎPandas Pandas ¤Jªù Ū¨úMySQL ¼Æ¾Ú®w ©MFlask À³¥Î¶°¦¨ ²Ä12 ³¹À°§U¤u¨ã. . . . . . 336 IPython IPython ¥æ¤¬¼Ò¦¡ ±`¥ÎªºMagic ¨ç¼Æ °t¸m©M¦Û©w¸qIPython IPython ªºÂX®i¨t²Î ¨Ï¥ÎIPython ½Õ¸Õ´_Âø¥N½X Âù¶iµ{¼Ò«¬ ¦}¦æpºâ Jupyter Notebook Notebook ®æ¦¡ Notebook ®æ¦¡Âà´«©M¹wÄý ¬°¤°¤\¨Ï¥ÎRequireJS ¦bNotebook ¨½¨Ï¥ÎEcharts ´IÅã¥Ü ¦Û©w¸qJavaScript ©MCSS ¼Ë¦¡ ¨Ï¥Înbextension ÂX®iNotebook
¦bNotebook ¤W¨Ï¥Î¦}¦æpºâ ½Õ¸Õ©MDebug ¤u¨ã ¤F¸ÑLinux ªA°È¾¹¹B¦æ±¡ªp ©Ê¯à´ú¸Õ Python µ{§Ç©Ê¯à¤ÀªR ©Ê¯à½ÕÀu¹ê½î ¶i¶¥½g¡G©w¨î°ò¤_IPython ªº¥æ¤¬¸ÑÄÀÀô¹Ò ¶i¶¥½g¡G¨§Ã¤ªF¦èªºJupyter Notebook ¹ê½î ²Ä13 ³¹Python ¦}µo½sµ{. . . . . 383 ¨Ï¥Î¦h½uµ{ ¨Ï¥ÎGevent ¨Ï¥Î¦h¶iµ{ ¨Ï¥ÎFuture ¨Ï¥Îasyncio async/await Future ¨Ï¥Îaiohttp ¨Ï¥Î¶¤¦C ²Ä14 ³¹Python ¶i¶¥. . . . . 418 ¨Ï¥Î¼Ð·Ç®w¼Ò¶ô errno subprocess contextlib glob operator functools collections Python »yªk³Ì¨Î¹ê½î ©R¦W
¨Ï¥Îjoin ³s±µ¦r²Å¦ê EAFP vs LBYL ©w¸qÃþªº__str__/__repr__ ¤èªk Àu¬üªºPython ±qPython 3 ²¾´Ó partialmethod singledispatch suppress redirect_stdout/redirect_stderr ¨Ï¥ÎCFFI/Cython ½s¼gPython ÂX®i ¨Ï¥ÎCFFI ¨Ï¥ÎCython ¶i¶¥½g¡G¨Ï¥ÎPyObjC µo°e³qª¾ ²Ä15 ³¹Web ¶}µo¶µ¥Ø¹ê½î. . . . . 455 Web ¶µ¥Ø¸gÅçÁ`µ² ¶}µo¬yµ{ ¨Ï¥Î¦X²zªº¶µ¥Øµ²ºc Ãöª`¥N½X´_Âø«× ¥N½X½è¶q«OÃÒ¤u¨ã Pycodestyle ¹ï¤¤¤åÁY¶iªº³B²z Flake8 Pylint ¨ä¥L¥N½X½è¶q«OÃÒ¤u¨ã ¨Ï¥ÎAST °µÀRºAÀˬd ¨ä¥LÀRºAÀˬd¤u¨ã ½s¼gFlake8 ÂX®i ¥N½Xµû¼fªº·N¸q §@¬°³Qµû¼fªÌ §@¬°µû¼fªÌ µû¼fªº¼Ð·Ç |
§Ç¡G |