## Python - 100天ä»æ°æå°å¤§å¸ > ä½è ï¼éªæ ### Pythonåºç¨é¢ååå°±ä¸å½¢å¿åæ ç®åç说ï¼Pythonæ¯ä¸ä¸ªâä¼é âãâæç¡®âãâç®åâçç¼ç¨è¯è¨ã - å¦ä¹ æ²çº¿ä½ï¼éä¸ä¸äººå£«ä¹è½ä¸æ - å¼æºç³»ç»ï¼æ¥æ强大ççæå - 解éåè¯è¨ï¼å®ç¾çå¹³å°å¯ç§»æ¤æ§ - æ¯æé¢å对象åå½æ°å¼ç¼ç¨ - è½å¤éè¿è°ç¨C/C++代ç æ©å±åè½ - 代ç è§èç¨åº¦é«ï¼å¯è¯»æ§å¼º ç®åå 个æ¯è¾æµè¡çé¢åï¼Pythoné½æç¨æ¦ä¹å°ã - äºåºç¡è®¾æ½ - Python / Java / Go - DevOps - Python / Shell / Ruby / Go - ç½ç»ç¬è« - Python / PHP / C++ - æ°æ®åæææ - Python / R / Scala / Matlab - æºå¨å¦ä¹ - Python / R / Java / Lisp ä½ä¸ºä¸åPythonå¼åè ï¼ä¸»è¦çå°±ä¸é¢åå æ¬ï¼ - Pythonæå¡å¨åå°å¼å / 游ææå¡å¨å¼å / æ°æ®æ¥å£å¼åå·¥ç¨å¸ - Pythonèªå¨åè¿ç»´å·¥ç¨å¸ - Pythonæ°æ®åæ / æ°æ®å¯è§å / 大æ°æ®å·¥ç¨å¸ - Pythonç¬è«å·¥ç¨å¸ - Pythonè天æºå¨äººå¼å / å¾åè¯å«åè§è§ç®æ³ / 深度å¦ä¹ å·¥ç¨å¸ ä¸å¾æ¾ç¤ºäºä¸»è¦åå¸Pythonæèéæ±éåèªèµå¾ éæè¡æ¦ï¼æªæ¢å°2018å¹´5æï¼ã ![Pythonæèéæ±åèªèµå¾ éTop 10](./res/python-top-10.png) ![](./res/python-bj-salary.png) ![](./res/python-cd-salary.png) ç»åå¦è çå ä¸ªå»ºè®®ï¼ - Make English as your working language. - Practice makes perfect. - All experience comes from mistakes. - Don't be one of the leeches. - Either stand out or kicked out. ### Day01~15 - [Pythonè¯è¨åºç¡](./Day01-15) #### Day01 - [åè¯Python](./Day01-15/Day01/åè¯Python.md) - Pythonç®ä» - Pythonçåå² / Pythonçä¼ç¼ºç¹ / Pythonçåºç¨é¢å - æ建ç¼ç¨ç¯å¢ - Windowsç¯å¢ / Linuxç¯å¢ / MacOSç¯å¢ - ä»ç»ç«¯è¿è¡Pythonç¨åº - DOSå½ä»¤ / Hello, world / printå½æ° / è¿è¡ç¨åº - 使ç¨IDLE - 交äºå¼ç¯å¢(REPL) / ç¼åå¤è¡ä»£ç / è¿è¡ç¨åº / éåºIDLE - 注é - 注éçä½ç¨ / åè¡æ³¨é / å¤è¡æ³¨é #### Day02 - [è¯è¨å ç´ ](./Day01-15/Day02/è¯è¨å ç´ .md) - ç¨åºåè¿å¶ - æ令åç¨åº / å¯è¯ºä¾æ¼æº / äºè¿å¶ååè¿å¶ / å «è¿å¶ååå è¿å¶ - åéåç±»å - åéçå½å / åéçä½¿ç¨ / inputå½æ° / æ£æ¥åéç±»å / ç±»åè½¬æ¢ - æ°ååå符串 - æ´æ° / æµ®ç¹æ° / å¤æ° / å符串 / å符串åºæ¬æä½ / å符ç¼ç - è¿ç®ç¬¦ - æ°å¦è¿ç®ç¬¦ / èµå¼è¿ç®ç¬¦ / æ¯è¾è¿ç®ç¬¦ / é»è¾è¿ç®ç¬¦ / 身份è¿ç®ç¬¦ / è¿ç®ç¬¦çä¼å 级 - åºç¨æ¡ä¾ - åæ°æ¸©åº¦è½¬æ¢æææ°æ¸©åº¦ / è¾å ¥åçåå¾è®¡ç®å¨é¿åé¢ç§¯ / è¾å ¥å¹´ä»½å¤ææ¯å¦æ¯é°å¹´ #### Day03 - [åæ¯ç»æ](./Day01-15/Day03/åæ¯ç»æ.md) - åæ¯ç»æçåºç¨åºæ¯ - æ¡ä»¶ / ç¼©è¿ / 代ç å / æµç¨å¾ - ifè¯å¥ - ç®åçif / if-elseç»æ / if-elif-elseç»æ / åµå¥çif - åºç¨æ¡ä¾ - ç¨æ·èº«ä»½éªè¯ / è±å¶åä½ä¸å ¬å¶åä½äºæ¢ / æ·éª°åå³å®åä»ä¹ / ç¾åå¶æ绩转ççº§å¶ / å段å½æ°æ±å¼ / è¾å ¥ä¸æ¡è¾¹çé¿åº¦å¦æè½ææä¸è§å½¢å°±è®¡ç®å¨é¿åé¢ç§¯ #### Day04 - [循ç¯ç»æ](./Day01-15/Day04/循ç¯ç»æ.md) - 循ç¯ç»æçåºç¨åºæ¯ - æ¡ä»¶ / ç¼©è¿ / 代ç å / æµç¨å¾ - whileå¾ªç¯ - åºæ¬ç»æ / breakè¯å¥ / continueè¯å¥ - forå¾ªç¯ - åºæ¬ç»æ / rangeç±»å / 循ç¯ä¸çåæ¯ç»æ / åµå¥çå¾ªç¯ / æåç»æç¨åº - åºç¨æ¡ä¾ - 1~100æ±å / å¤æç´ æ° / çæ°å游æ / æå°ä¹ä¹è¡¨ / æå°ä¸è§å½¢å¾æ¡ / ç´ååæ¡ / ç¾é±ç¾é¸¡ #### Day05 - [æ»ç»åç»ä¹ ](./Day01-15/Day05/æ»ç»åç»ä¹ .md) - åºç¡ç»ä¹ - æ°´ä»è±æ° / å®ç¾æ° / äºäººåé±¼ / Fibonacciæ°å / åæç´ æ° - 综åç»ä¹ - Crapsèµå游æ #### Day06 - [å½æ°å模åç使ç¨](./Day01-15/Day06/å½æ°å模åç使ç¨.md) - å½æ°çä½ç¨ - 代ç çåå³é / ç¨å½æ°å°è£ åè½æ¨¡å - å®ä¹å½æ° - defè¯å¥ / å½æ°å / åæ°å表 / returnè¯å¥ / è°ç¨èªå®ä¹å½æ° - è°ç¨å½æ° - Pythonå ç½®å½æ° / å¯¼å ¥æ¨¡ååå½æ° - å½æ°çåæ° - é»è®¤åæ° / å¯ååæ° / å ³é®ååæ° / å½åå ³é®ååæ° - å½æ°çè¿åå¼ - 没æè¿åå¼ / è¿ååä¸ªå¼ / è¿åå¤ä¸ªå¼ - ä½ç¨åé®é¢ - å±é¨ä½ç¨å / åµå¥ä½ç¨å / å ¨å±ä½ç¨å / å ç½®ä½ç¨å / åä½ç¨åç¸å ³çå ³é®å - ç¨æ¨¡å管çå½æ° - 模åçæ¦å¿µ / ç¨èªå®ä¹æ¨¡å管çå½æ° / å½åå²çªçæ¶åä¼ææ ·ï¼åä¸ä¸ªæ¨¡ååä¸åç模åï¼ #### Day07 - [å符串å常ç¨æ°æ®ç»æ](./Day01-15/Day07/å符串å常ç¨æ°æ®ç»æ.md) - å符串çä½¿ç¨ - 计ç®é¿åº¦ / ä¸æ è¿ç® / åç / 常ç¨æ¹æ³ - å表åºæ¬ç¨æ³ - å®ä¹å表 / ç¨ä¸è¡¨è®¿é®å ç´ / ä¸æ è¶ç / æ·»å å ç´ / å é¤å ç´ / ä¿®æ¹å ç´ / åç / 循ç¯éå - å表常ç¨æä½ - è¿æ¥ / å¤å¶(å¤å¶å ç´ åå¤å¶æ°ç») / é¿åº¦ / æåº / å转 / æ¥æ¾ - çæå表 - 使ç¨rangeå建æ°åå表 / çæè¡¨è¾¾å¼ / çæå¨ - å ç»çä½¿ç¨ - å®ä¹å ç» / 使ç¨å ç»ä¸çå¼ / ä¿®æ¹å ç»åé / å ç»ååè¡¨è½¬æ¢ - éååºæ¬ç¨æ³ - éååå表çåºå« / å建éå / æ·»å å ç´ / å é¤å ç´ / æ¸ ç©º - éå常ç¨æä½ - 交é / 并é / å·®é / 对称差 / åé / è¶ é - åå ¸çåºæ¬ç¨æ³ - åå ¸çç¹ç¹ / å建åå ¸ / æ·»å å ç´ / å é¤å ç´ / åå¼ / æ¸ ç©º - åå ¸å¸¸ç¨æä½ - keys()æ¹æ³ / values()æ¹æ³ / items()æ¹æ³ / setdefault()æ¹æ³ - åºç¡ç»ä¹ - è·é©¬ç¯ææ / å表æ¾æ大å ç´ / ç»è®¡èè¯æ绩çå¹³åå / Fibonacciæ°å / æ¨è¾ä¸è§ - 综åæ¡ä¾ - åè²çéå· / äºåæ£ #### Day08 - [é¢å对象ç¼ç¨åºç¡](./Day01-15/Day08/é¢å对象ç¼ç¨åºç¡.md) - ç±»å对象 - ä»ä¹æ¯ç±» / ä»ä¹æ¯å¯¹è±¡ / é¢åå¯¹è±¡å ¶ä»ç¸å ³æ¦å¿µ - å®ä¹ç±» - åºæ¬ç»æ / å±æ§åæ¹æ³ / æé å¨ / ææå¨ / \_\_str\_\_æ¹æ³ - 使ç¨å¯¹è±¡ - å建对象 / ç»å¯¹è±¡åæ¶æ¯ - é¢å对象çå大æ¯æ± - æ½è±¡ / å°è£ / ç»§æ¿ / å¤æ - åºç¡ç»ä¹ - å®ä¹å¦çç±» / å®ä¹æ¶éç±» / å®ä¹å¾å½¢ç±» / å®ä¹æ±½è½¦ç±» #### Day09 - [é¢å对象è¿é¶](./Day01-15/Day09/é¢å对象è¿é¶.md) - å±æ§ - ç±»å±æ§ / å®ä¾å±æ§ / å±æ§è®¿é®å¨ / å±æ§ä¿®æ¹å¨ / å±æ§å é¤å¨ / 使ç¨\_\_slots\_\_ - ç±»ä¸çæ¹æ³ - å®ä¾æ¹æ³ / ç±»æ¹æ³ / éææ¹æ³ - è¿ç®ç¬¦éè½½ - \_\_add\_\_ / \_\_sub\_\_ / \_\_or\_\_ /\_\_getitem\_\_ / \_\_setitem\_\_ / \_\_len\_\_ / \_\_repr\_\_ / \_\_gt\_\_ / \_\_lt\_\_ / \_\_le\_\_ / \_\_ge\_\_ / \_\_eq\_\_ / \_\_ne\_\_ / \_\_contains\_\_ - ç±»(ç对象)ä¹é´çå ³ç³» - å ³è / ç»§æ¿ / ä¾èµ - 继æ¿åå¤æ - ä»ä¹æ¯ç»§æ¿ / 继æ¿çè¯æ³ / è°ç¨ç¶ç±»æ¹æ³ / æ¹æ³éå / ç±»åå¤å® / å¤éç»§æ¿ / è±å½¢ç»§æ¿(é»ç³ç»§æ¿)åC3ç®æ³ - 综åæ¡ä¾ - å·¥èµç»ç®ç³»ç» / å¾ä¹¦èªå¨ææ£ç³»ç» / èªå®ä¹åæ°ç±» #### Day10 - [å¾å½¢ç¨æ·çé¢å游æå¼å](./Day01-15/Day10/å¾å½¢ç¨æ·çé¢å游æå¼å.md) - 使ç¨tkinterå¼åGUI - 使ç¨pygameä¸æ¹åºå¼å游æåºç¨ - â大çåå°çâ游æ #### Day11 - [æ件åå¼å¸¸](./Day01-15/Day11/æ件åå¼å¸¸.md) - 读æ件 - 读åæ´ä¸ªæ件 / éè¡è¯»å / æä»¶è·¯å¾ - åæ件 - è¦çåå ¥ / 追å åå ¥ / ææ¬æ件 / äºè¿å¶æ件 - å¼å¸¸å¤ç - å¼å¸¸æºå¶çéè¦æ§ / try-except代ç å / else代ç å / finally代ç å / å ç½®å¼å¸¸ç±»å / å¼å¸¸æ / raiseè¯å¥ - æ°æ®æä¹ å - CSVæ件æ¦è¿° / csv模åçåºç¨ / JSONæ°æ®æ ¼å¼ / json模åçåºç¨ - 综åæ¡ä¾ - æè¯è§£æ #### Day12 - [å符串åæ£å表达å¼](./Day01-15/Day12/å符串åæ£å表达å¼.md) - å符串é«çº§æä½ - 转ä¹å符 \ åå§å符串 \ å¤è¡å符串 \ inå not inè¿ç®ç¬¦ \ iså¼å¤´çæ¹æ³ \ joinåsplitæ¹æ³ \ stripç¸å ³æ¹æ³ \ pyperclip模å \ ä¸åå符串åå¯åå符串 \ StringIOçä½¿ç¨ - æ£å表达å¼å ¥é¨ - æ£å表达å¼çä½ç¨ \ å å符 \ è½¬ä¹ \ éè¯ \ åç» \ é¶å®½æè¨ \贪婪å¹é ä¸æ°æ§å¹é ææ° \ 使ç¨re模åå®ç°æ£å表达å¼æä½ï¼å¹é ãæç´¢ãæ¿æ¢ãæè·ï¼ - 使ç¨æ£åè¡¨è¾¾å¼ - re模å \ compileå½æ° \ groupågroupsæ¹æ³ \ matchæ¹æ³ \ searchæ¹æ³ \ findallåfinditeræ¹æ³ \ subåsubnæ¹æ³ \ splitæ¹æ³ - åºç¨æ¡ä¾ - 使ç¨æ£å表达å¼éªè¯è¾å ¥çå符串 #### Day13 - [è¿ç¨å线ç¨](./Day01-15/Day13/è¿ç¨å线ç¨.md) - è¿ç¨å线ç¨çæ¦å¿µ - ä»ä¹æ¯è¿ç¨ / ä»ä¹æ¯çº¿ç¨ / å¤çº¿ç¨çåºç¨åºæ¯ - 使ç¨è¿ç¨ - forkå½æ° / multiprocessing模å / è¿ç¨æ± / è¿ç¨é´éä¿¡ - 使ç¨çº¿ç¨ - thread模å / threading模å / Threadç±» / Lockç±» / Conditionç±» / 线ç¨æ± #### Day14-A - [ç½ç»ç¼ç¨å ¥é¨](./Day01-15/Day14-A/ç½ç»ç¼ç¨å ¥é¨.md) - 计ç®æºç½ç»åºç¡ - 计ç®æºç½ç»åå±å² / âTCP-IPâ模å / IPå°å / ç«¯å£ / åè®® / å ¶ä»ç¸å ³æ¦å¿µ - ç½ç»åºç¨æ¶æ - â客æ·ç«¯-æå¡å¨âæ¶æ / âæµè§å¨-æå¡å¨âæ¶æ - Pythonç½ç»ç¼ç¨ - å¥æ¥åçæ¦å¿µ / socket模å / socketå½æ° / å建TCPæå¡å¨ / å建TCP客æ·ç«¯ / å建UDPæå¡å¨ / å建UDP客æ·ç«¯ / SocketServer模å #### Day14-B - [ç½ç»åºç¨å¼å](./Day01-15/Day14-B/ç½ç»åºç¨å¼å.md) - 访é®ç½ç»API - ç½ç»APIæ¦è¿° / 访é®URL / requests模å / 解æJSONæ ¼å¼æ°æ® - æä»¶ä¼ è¾ - FTPåè®® / ftplib模å / 交äºå¼FTPåºç¨ - çµåé®ä»¶ - SMTPåè®® / POP3åè®® / IMAPåè®® / smtplib模å / poplib模å / imaplib模å - çä¿¡æå¡ - twilio模å / å½å ççä¿¡æå¡ #### Day15 - [å¾ååææ¡£å¤ç](./Day01-15/Day15/å¾åååå ¬ææ¡£å¤ç.md) - ç¨Pillowå¤çå¾ç - å¾ç读å / å¾çåæ / å ä½åæ¢ / è²å½©è½¬æ¢ / 滤éææ - 读åWordææ¡£ - ææ¬å 容çå¤ç / æ®µè½ / 页çå页è / æ ·å¼çå¤ç - 读åExcelæ件 - xlrd模å / xlwt模å - çæPDFæ件 - pypdf2模å / reportlab模å ### Day16~Day20 - [Pythonè¯è¨è¿é¶ ](./Day16-20/Pythonè¯è¨è¿é¶.md) - 常ç¨æ°æ®ç»æ - å½æ°çé«çº§ç¨æ³ - âä¸çå ¬æ°â / é«é¶å½æ° / Lambdaå½æ° / ä½ç¨ååéå / è£ é¥°å¨ - é¢å对象é«çº§ç¥è¯ - âä¸å¤§æ¯æ±â / ç±»ä¸ç±»ä¹é´çå ³ç³» / åå¾åæ¶ / éæ¯å±æ§åæ¹æ³ / æ··å ¥ / å ç±» / é¢å对象设计åå / GoFè®¾è®¡æ¨¡å¼ - è¿ä»£å¨åçæå¨ - ç¸å ³éæ¯æ¹æ³ / å建çæå¨ç两ç§æ¹å¼ / - 并ååå¼æ¥ç¼ç¨ - å¤çº¿ç¨ / å¤è¿ç¨ / å¼æ¥IO / asyncåawait ### Day21~30 - [Webåç«¯å ¥é¨](./Day21-30/Webå端æ¦è¿°.md) - ç¨HTMLæ ç¾æ¿è½½é¡µé¢å 容 - ç¨CSS渲æé¡µé¢ - ç¨JavaScriptå¤ç交äºå¼è¡ä¸º - jQueryå ¥é¨åæé« - Vue.jså ¥é¨ - Elementçä½¿ç¨ - Bootstrapçä½¿ç¨ ### Day31~35 - [ç©è½¬Linuxæä½ç³»ç»](./Day31-35/ç©è½¬Linuxæä½ç³»ç».md) - æä½ç³»ç»åå±å²åLinuxæ¦è¿° - Linuxåºç¡å½ä»¤ - Linuxä¸çå®ç¨ç¨åº - Linuxçæä»¶ç³»ç» - Vimç¼è¾å¨çåºç¨ - ç¯å¢åéåShellç¼ç¨ - 软件çå®è£ åæå¡çé ç½® - ç½ç»è®¿é®å管ç - å ¶ä»ç¸å ³å 容 ### Day36~40 - [æ°æ®åºåºç¡åè¿é¶](./Day36-40) - [å ³ç³»åæ°æ®åºMySQL](./Day36-40/å ³ç³»åæ°æ®åºMySQL.md) - å ³ç³»åæ°æ®åºæ¦è¿° - MySQLçå®è£ åä½¿ç¨ - SQLçä½¿ç¨ - DDL - æ°æ®å®ä¹è¯è¨ - create / drop / alter - DML - æ°æ®æä½è¯è¨ - insert / delete / update / select - DCL - æ°æ®æ§å¶è¯è¨ - grant / revoke - ç¸å ³ç¥è¯ - èå¼ç论 - 设计äºç»´è¡¨çæ导ææ³ - æ°æ®å®æ´æ§ - æ°æ®ä¸è´æ§ - å¨Pythonä¸æä½MySQL - [NoSQLå ¥é¨](./Day36-40/NoSQLå ¥é¨.md) - NoSQLæ¦è¿° - Redisæ¦è¿° - Mongoæ¦è¿° ### Day41~55 - [å®æDjango](./Day41-55) #### Day41 - [å¿«éä¸æ](./Day41-55/01.å¿«éä¸æ.md) - Webåºç¨å·¥ä½åçåHTTPåè®® - Djangoæ¡æ¶æ¦è¿° - 5åéå¿«éä¸æ - 使ç¨è§å¾æ¨¡æ¿ #### Day42 - [æ·±å ¥æ¨¡å](./Day41-55/02.æ·±å ¥æ¨¡å.md) - å ³ç³»åæ°æ®åºé ç½® - 管çåå°çä½¿ç¨ - 使ç¨ORMå®æ对模åçCRUDæä½ - Django模åæä½³å®è·µ - 模åå®ä¹åè #### Day43 - [éæèµæºåAjax请æ±](./Day41-55/03.éæèµæºåAjax请æ±.md) - å è½½éæèµæº - ç¨Ajax请æ±è·åæ°æ® #### Day44 - [表åçåºç¨](./Day41-55/04.表åçåºç¨.md) #### Day45 - [CookieåSession](./Day41-55/05.CookieåSession.md) #### Day46 - [ä¸é´ä»¶çåºç¨](./Day41-55/06.ä¸é´ä»¶çåºç¨.md) #### Day47 - [æ¥å¿åç¼å](./Day41-55/07.æ¥å¿åç¼å.md) #### Day48 - [æ件ä¸ä¼ åå¯ææ¬ç¼è¾](./Day41-55/08.æ件ä¸ä¼ .md) #### Day49 - [æ件ä¸è½½åæ¥è¡¨](./Day41-55/09.æ件ä¸è½½åæ¥è¡¨.md) #### Day50 - [RESTfulæ¶æåDRFå ¥é¨](./Day41-55/10.RESTfulæ¶æåDRFå ¥é¨.md) #### Day51 - [RESTfulæ¶æåDRFè¿é¶](./Day41-55/11.RESTfulæ¶æåDRFè¿é¶.md) #### Day52 - [使ç¨ç¼å](./Day41-55/12.使ç¨ç¼å.md) #### Day53 - [çä¿¡åé®ä»¶](./Day41-55/13.çä¿¡åé®ä»¶.md) #### Day54 - [å¼æ¥ä»»å¡åå®æ¶ä»»å¡](./Day41-55/14.å¼æ¥ä»»å¡åå®æ¶ä»»å¡.md) #### Day55 - [åå æµè¯å项ç®ä¸çº¿](./Day41-55/15.åå æµè¯å项ç®ä¸çº¿.md) - 项ç®å¼åæµç¨åç¸å ³å·¥å · - çæéHTMLå 容 - 项ç®é¨ç½²åæµè¯ - 项ç®æ§è½åæ¥è°ä¼ - Webåºç¨å®å ¨ä¿æ¤ ### Day56~60 - [å®æFlask](./Day56-65) #### Day56 - [Flaskå ¥é¨](./Day56-60/01.Flaskå ¥é¨.md) #### Day57 - [模æ¿ç使ç¨](./Day56-60/02.模æ¿ç使ç¨.md) #### Day58 - [表åçå¤ç](./Day56-60/03.表åçå¤ç.md) #### Day59 - [æ°æ®åºæä½](./Day56-60/04.æ°æ®åºæä½.md) #### Day60 - [项ç®å®æ](./Day56-60/05.项ç®å®æ.md) ### Day61~65 - [å®æTornado](./Day61-65) #### Day61 - [é¢å¤ç¥è¯](./Day61-65/01.é¢å¤ç¥è¯.md) - 并åç¼ç¨ - I/O模å¼åäºä»¶é©±å¨ #### Day62 - [Tornadoå ¥é¨](./Day61-65/02.Tornadoå ¥é¨.md) - Tornadoæ¦è¿° - 5åéä¸æTornado - è·¯ç±è§£æ - 请æ±å¤çå¨ #### Day63 - [å¼æ¥å](./Day61-65/03.å¼æ¥å.md) - aiomysqlåaioredisçä½¿ç¨ #### Day64 - [WebSocketçåºç¨](./Day61-65/04.WebSocketçåºç¨.md) - WebSocketç®ä» - WebSocketæå¡å¨ç«¯ç¼ç¨ - WebSocket客æ·ç«¯ç¼ç¨ - 项ç®ï¼Webè天室 #### Day65 - [项ç®å®æ](./Day61-65/05.项ç®å®æ.md) - åå端å离å¼ååæ¥å£ææ¡£çæ°å - 使ç¨Vue.jså®ç°å端渲æ - 使ç¨EChartså®ç°æ¥è¡¨åè½ - 使ç¨WebSocketå®ç°æ¨éæå¡ ### Day66~75 - [ç¬è«å¼å](./Day66-75) #### Day66 - [ç½ç»ç¬è«åç¸å ³å·¥å ·](./Day66-75/01.ç½ç»ç¬è«åç¸å ³å·¥å ·.md) #### Day67 - [æ°æ®ééå解æ](./Day66-75/02.æ°æ®ééå解æ.md) #### Day68 - [åå¨æ°æ®](./Day66-75/03.åå¨æ°æ®.md) #### Day69 - [并åä¸è½½](./Day66-75/04.并åä¸è½½.md) #### Day70 - [解æå¨æå 容](./Day66-75/05.解æå¨æå 容.md) #### Day71 - [表å交äºåéªè¯ç å¤ç](./Day66-75/06.表å交äºåéªè¯ç å¤ç.md) #### Day72 - [Scrapyå ¥é¨](./Day66-75/07.Scrapyå ¥é¨.md) #### Day73 - [Scrapyé«çº§åºç¨](./Day66-75/08.Scrapyé«çº§åºç¨.md) #### Day74 - [Scrapyåå¸å¼å®ç°](./Day66-75/09.Scrapyåå¸å¼å®ç°.md) #### Day75 - [ç¬è«é¡¹ç®å®æ](./Day66-75/10.ç¬è«é¡¹ç®å®æ.md) ### Day76~90 - [æ°æ®å¤çåæºå¨å¦ä¹ ](./Day76-90) #### Day76 - [æºå¨å¦ä¹ åºç¡](./Day76-90/01.æºå¨å¦ä¹ åºç¡.md) #### Day77 - [Pandasçåºç¨](./Day76-90/02.Pandasçåºç¨.md) #### Day78 - [NumPyåSciPyçåºç¨](./Day76-90/03.NumPyåSciPyçåºç¨) #### Day79 - [Matplotlibåæ°æ®å¯è§å](./Day76-90/04.Matplotlibåæ°æ®å¯è§å) #### Day80 - [kæè¿é»(KNN)åç±»](./Day76-90/05.kæè¿é»åç±».md) #### Day81 - [å³çæ ](./Day76-90/06.å³çæ .md) #### Day82 - [è´å¶æ¯åç±»](./Day76-90/07.è´å¶æ¯åç±».md) #### Day83 - [æ¯æåéæº(SVM)](./Day76-90/08.æ¯æåéæº.md) #### Day84 - [K-åå¼èç±»](./Day76-90/09.K-åå¼èç±».md) #### Day85 - [åå½åæ](./Day76-90/10.åå½åæ.md) #### Day86 - [大æ°æ®åæå ¥é¨](./Day76-90/11.大æ°æ®åæå ¥é¨.md) #### Day87 - [大æ°æ®åæè¿é¶](./Day76-90/12.大æ°æ®åæè¿é¶.md) #### Day88 - [Tensorflowå ¥é¨](./Day76-90/13.Tensorflowå ¥é¨.md) #### Day89 - [Tensorflowå®æ](./Day76-90/14.Tensorflowå®æ.md) #### Day90 - [æ¨èç³»ç»](./Day76-90/15.æ¨èç³»ç».md) ### Day91~100 - [å¢é项ç®å¼å](./Day91-100) #### 第91天ï¼å¢éå¼åå项ç®éé¢ 1. 软件è¿ç¨æ¨¡å - ç»å ¸è¿ç¨æ¨¡åï¼çå¸æ¨¡åï¼ - å¯è¡æ§åæï¼ç 究åè¿æ¯ä¸åï¼ï¼è¾åºãå¯è¡æ§åææ¥åãã - éæ±åæï¼ç 究åä»ä¹ï¼ï¼è¾åºãéæ±è§æ ¼è¯´æ书ãå产åçé¢ååå¾ã - æ¦è¦è®¾è®¡å详ç»è®¾è®¡ï¼è¾åºæ¦å¿µæ¨¡åå¾ãç©ç模åå¾ãç±»å¾ãæ¶åºå¾çã - ç¼ç / æµè¯ã - ä¸çº¿ / ç»´æ¤ã - ææ·å¼åï¼Scrumï¼- 产åææè ãScrum Masterãç å人å - Sprint - 产åçBacklogï¼ç¨æ·æ äºã产åååï¼ã - 计åä¼è®®ï¼è¯ä¼°åé¢ç®ï¼ã - æ¥å¸¸å¼åï¼ç«ç«ä¼è®®ãçªèå·¥ä½æ³ãç»å¯¹ç¼ç¨ãæµè¯å è¡ã代ç éæâ¦â¦ï¼ã - ä¿®å¤bugï¼é®é¢æè¿°ãéç°æ¥éª¤ãæµè¯äººåã被æ派人ï¼ã - è¯å®¡ä¼è®®ï¼Showcaseï¼ã - å顾ä¼è®®ï¼å½åå¨æåå¾å¥½åä¸å¥½çå°æ¹ï¼ã > è¡¥å ï¼ææ·è½¯ä»¶å¼åå®£è¨ > > - **个ä½åäºå¨** é«äº æµç¨åå·¥å · > - **å·¥ä½ç软件** é«äº 详尽çææ¡£ > - **客æ·åä½** é«äº ååè°å¤ > - **ååºåå** é«äº éµå¾ªè®¡å ![](./res/the-daily-scrum-in-the-sprint-cycle.png) > è§è²ï¼äº§åææè ï¼å³å®åä»ä¹ï¼è½å¯¹éæ±ææ¿ç人ï¼ãå¢éè´è´£äººï¼è§£å³åç§é®é¢ï¼ä¸æ³¨å¦ä½æ´å¥½çå·¥ä½ï¼å±è½å¤é¨å¯¹å¼åå¢éçå½±åï¼ãå¼åå¢éï¼é¡¹ç®æ§è¡äººåï¼å ·ä½æå¼å人ååæµè¯äººåï¼ã > > åå¤å·¥ä½ï¼åä¸æ¡ä¾åèµéãååãæ§æ¬ãåå§äº§åéæ±ãåå§åå¸è®¡åãå ¥è¡ãç»å»ºå¢éã > > ææ·å¢éé常人æ°ä¸º8-10人ã > > å·¥ä½éä¼°ç®ï¼å°å¼åä»»å¡éåï¼å æ¬ååãLogo设计ãUI设计ãå端å¼åçï¼å°½éææ¯ä¸ªå·¥ä½å解å°æå°ä»»å¡éï¼æå°ä»»å¡éæ å为工ä½æ¶é´ä¸è½è¶ è¿ä¸¤å¤©ï¼ç¶åä¼°ç®æ»ä½é¡¹ç®æ¶é´ãææ¯ä¸ªä»»å¡é½è´´å¨ç½æ¿ä¸é¢ï¼ç½æ¿ä¸åä¸é¨åï¼to doï¼å¾ å®æï¼ãin progressï¼è¿è¡ä¸ï¼ådoneï¼å·²å®æï¼ã 2. 项ç®å¢éç»å»º - å¢éçææåè§è² > 说æï¼è°¢è°¢ä»ç¥¥è±å¥³å£«ç»å¶äºä¸é¢è¿å¼ ç²¾ç¾çå ¬å¸ç»ç»æ¶æå¾ã ![company_architecture](./res/company_architecture.png) - ç¼ç¨è§èå代ç 审æ¥ï¼flake8ãpylintï¼ ![](./res/pylint.png) - Pythonä¸çä¸äºâæ¯ä¾âï¼è¯·åè[ãPythonæ¯ä¾-å¦ä½ç¼åPythonicç代ç ã](Pythonæ¯ä¾.md)ï¼ - å½±å代ç å¯è¯»æ§çåå ï¼ - 代ç 注é太å°æè 没æ注é - 代ç ç ´åäºè¯è¨çæä½³å®è·µ - å模å¼ç¼ç¨ï¼æ大å©é¢ä»£ç ãå¤å¶-é»è´´ç¼ç¨ãèªè´ç¼ç¨ãâ¦â¦ï¼ 3. å¢éå¼åå·¥å ·ä»ç» - çæ¬æ§å¶ï¼GitãMercury - 缺é·ç®¡çï¼[Gitlab](https://about.gitlab.com/)ã[Redmine](http://www.redmine.org.cn/) - ææ·éç¯å·¥å ·ï¼[ç¦ é](https://www.zentao.net/)ã[JIRA](https://www.atlassian.com/software/jira/features) - æç»éæï¼[Jenkins](https://jenkins.io/)ã[Travis-CI](https://travis-ci.org/) 请åè[ãå¢é项ç®å¼åã](Day91-100/å¢é项ç®å¼å.md)ã ##### 项ç®éé¢åç解ä¸å¡ 1. éé¢èå´è®¾å® - CMSï¼ç¨æ·ç«¯ï¼ï¼æ°é»èåç½ç«ãé®ç/å享社åºãå½±è¯/书è¯ç½ç«çã - MISï¼ç¨æ·ç«¯+管ç端ï¼ï¼KMSãKPIèæ ¸ç³»ç»ãHRSãCRMç³»ç»ãä¾åºé¾ç³»ç»ãä»å¨ç®¡çç³»ç»çã - Appåå°ï¼ç®¡ç端+æ°æ®æ¥å£ï¼ï¼äºæ交æç±»ãæ¥åæå¿ç±»ãå°ä¼çµåç±»ãæ°é»èµè®¯ç±»ãæ 游类ã社交类ãé 读类çã - å ¶ä»ç±»åï¼èªèº«è¡ä¸èæ¯åå·¥ä½ç»éªãä¸å¡å®¹æç解åææ§ã 2. éæ±ç解ã模ååååä»»å¡åé - éæ±ç解ï¼å¤´èé£æ´åç«ååæã - 模åååï¼ç»æ维导å¾ï¼XMindï¼ï¼æ¯ä¸ªæ¨¡åæ¯ä¸ä¸ªæèç¹ï¼æ¯ä¸ªå ·ä½çåè½æ¯ä¸ä¸ªå¶èç¹ï¼ç¨å¨è¯è¡¨è¿°ï¼ï¼éè¦ç¡®ä¿æ¯ä¸ªå¶èç¹æ æ³åçåºæ°èç¹ï¼ç¡®å®æ¯ä¸ªå¶åèç¹çéè¦æ§ãä¼å 级åå·¥ä½éã - ä»»å¡åé ï¼ç±é¡¹ç®è´è´£äººæ ¹æ®ä¸é¢çææ 为æ¯ä¸ªå¢éæååé ä»»å¡ã ![](./res/requirements_by_xmind.png) 3. å¶å®é¡¹ç®è¿åº¦è¡¨ï¼æ¯æ¥æ´æ°ï¼ | 模å | åè½ | 人å | ç¶æ | å®æ | å·¥æ¶ | 计åå¼å§ | å®é å¼å§ | 计åç»æ | å®é ç»æ | å¤æ³¨ | | ---- | -------- | ------ | -------- | ---- | ---- | -------- | -------- | -------- | -------- | ---------------- | | è¯è®º | æ·»å è¯è®º | çå¤§é¤ | æ£å¨è¿è¡ | 50% | 4 | 2018/8/7 | | 2018/8/7 | | | | | å é¤è¯è®º | çå¤§é¤ | çå¾ | 0% | 2 | 2018/8/7 | | 2018/8/7 | | | | | æ¥çè¯è®º | ç½å è³ | æ£å¨è¿è¡ | 20% | 4 | 2018/8/7 | | 2018/8/7 | | éè¦è¿è¡ä»£ç å®¡æ¥ | | | è¯è®ºæ票 | ç½å è³ | çå¾ | 0% | 4 | 2018/8/8 | | 2018/8/8 | | | #### 第92天ï¼æ°æ®åºè®¾è®¡åOOAD ##### æ¦å¿µæ¨¡ååæ£åå·¥ç¨ 1. UMLï¼ç»ä¸å»ºæ¨¡è¯è¨ï¼çç±»å¾ ![uml](./res/uml-class-diagram.png) 2. éè¿æ¨¡åå建表ï¼æ£åå·¥ç¨ï¼ ```Shell python manage.py makemigrations app python manage.py migrate ``` ##### ç©ç模ååååå·¥ç¨ 1. PowerDesigner ![](./res/power-designer-pdm.png) 2. éè¿æ°æ®è¡¨å建模åï¼ååå·¥ç¨ï¼ ```Shell python manage.py inspectdb > app/models.py ``` #### 第93-98天ï¼ä½¿ç¨Djangoå¼åé¡¹ç® > 说æï¼å ·ä½å 容请åè[ãDjangoç¥è¯ç¹æ¦è¿°ã](Day91-100/Djangoç¥è¯ç¹æ¦è¿°.md) ##### 项ç®å¼åä¸çå ¬å ±é®é¢ 1. æ°æ®åºçé ç½®ï¼å¤æ°æ®åºã主ä»å¤å¶ãæ°æ®åºè·¯ç±ï¼ 2. ç¼åçé ç½®ï¼ååºç¼åãé®è®¾ç½®ãè¶ æ¶è®¾ç½®ã主ä»å¤å¶ãæ éæ¢å¤ï¼å¨å µï¼ï¼ 3. æ¥å¿çé ç½® 4. åæåè°è¯ï¼Django-Debug-ToolBarï¼ 5. 好ç¨çPython模åï¼æ¥æ计ç®ãå¾åå¤çãæ°æ®å å¯ãä¸æ¹APIï¼ ##### REST API设计 1. RESTfulæ¶æ - [ç解RESTfulæ¶æ](http://www.ruanyifeng.com/blog/2011/09/restful.html) - [RESTful API设计æå](http://www.ruanyifeng.com/blog/2014/05/restful_api.html) - [RESTful APIæä½³å®è·µ](http://www.ruanyifeng.com/blog/2018/10/restful-api-best-practices.html) 2. APIæ¥å£ææ¡£çæ°åï¼[ãç½ç»APIæ¥å£è®¾è®¡ã](Day91-100/ç½ç»APIæ¥å£è®¾è®¡.md)ï¼ - [RAP2](http://rap2.taobao.org/) - [YAPI](http://yapi.demo.qunar.com/) 3. [django-REST-framework](https://www.django-rest-framework.org/)çåºç¨ ##### 项ç®ä¸çéç¹é¾ç¹åæ 1. 使ç¨ç¼åç¼è§£æ°æ®åºåå - Redis 2. 使ç¨æ¶æ¯éåå解è¦åååå³° - Celery + RabbitMQ #### 第99-100天ï¼æµè¯åé¨ç½² ##### åå æµè¯ 1. æµè¯çç§ç±» 2. ç¼ååå æµè¯ï¼unittestãpytestãnose2ãtoxãddtãâ¦â¦ï¼ 3. æµè¯è¦ççï¼coverageï¼ ##### 项ç®é¨ç½² > 说æï¼è¯·åè[ã项ç®é¨ç½²ä¸çº¿æåã](Day91-100/项ç®é¨ç½²ä¸çº¿æå.md)ã 1. é¨ç½²åçåå¤å·¥ä½ - å ³é®è®¾ç½®ï¼SECRET_KEY / DEBUG / ALLOWED_HOSTS / ç¼å / æ°æ®åºï¼ - HTTPS / CSRF_COOKIE_SECUR / SESSION_COOKIE_SECURE - æ¥å¿ç¸å ³é ç½® 2. Linux常ç¨å½ä»¤å顾 3. Linux常ç¨æå¡çå®è£ åé ç½® 4. uWSGI/GunicornåNginxçä½¿ç¨ - GunicornåuWSGIçæ¯è¾ - 对äºä¸éè¦å¤§éå®å¶åçç®ååºç¨ç¨åºï¼Gunicornæ¯ä¸ä¸ªä¸éçéæ©ï¼uWSGIçå¦ä¹ æ²çº¿æ¯Gunicornè¦é¡å³å¾å¤ï¼Gunicornçé»è®¤åæ°å°±å·²ç»è½å¤éåºå¤§å¤æ°åºç¨ç¨åºã - uWSGIæ¯æå¼æé¨ç½²ã - ç±äºNginxæ¬èº«æ¯æuWSGIï¼å¨çº¿ä¸ä¸è¬é½å°NginxåuWSGIæç»å¨ä¸èµ·é¨ç½²ï¼èä¸uWSGIå±äºåè½é½å ¨ä¸é«åº¦å®å¶çWSGIä¸é´ä»¶ã - å¨æ§è½ä¸ï¼GunicornåuWSGIå ¶å®è¡¨ç°ç¸å½ã 5. èæåææ¯ï¼Dockerï¼ ##### æ§è½æµè¯ > 说æï¼å ·ä½å 容请åè[ãDjangoç¥è¯ç¹æ¦è¿°ã](Day91-100/Djangoç¥è¯ç¹æ¦è¿°.md)ã 1. ABçä½¿ç¨ 2. SQLslapçä½¿ç¨ 3. sysbenchçä½¿ç¨ ##### èªå¨åæµè¯ 1. 使ç¨ShellåPythonè¿è¡èªå¨åæµè¯ 2. 使ç¨Seleniumå®ç°èªå¨åæµè¯ - Selenium IDE - Selenium WebDriver - Selenium Remote Control 3. æµè¯å·¥å ·Robot Frameworkä»ç» ##### 项ç®æ§è½è°ä¼ 1. æ°æ®åºæ§è½è°ä¼ - 请åè[ãMySQLç¸å ³ç¥è¯ã](Day91-100/MySQLç¸å ³ç¥è¯.md) - 软硬件ä¼å - SQLä¼å - æ¶æä¼å - å表ååº - 主ä»å¤å¶ï¼è¯»åå离 - é群æ¶æ 2. Webæå¡å¨æ§è½ä¼å - Nginxè´è½½åè¡¡é ç½® - Keepalivedå®ç°é«å¯ç¨ 3. 代ç æ§è½è°ä¼ - å¤çº¿ç¨ - å¼æ¥å 4. éæèµæºè®¿é®ä¼å - äºåå¨ - CDN > è´è°¢ï¼æè°¢çæçåäºå¤æãå¼ æãèä¸è£ãçæµ·é£ãè£ä½³ä¼ã路丰å¤çå¨ææ¯ä¸ç»äºçæ导å帮å©ã