1.Plotlyä¸djangoåªä¸ªå¥½
2.pythonè½åä»ä¹
Plotlyä¸djangoåªä¸ªå¥½
导读ï¼ä»å¤©é¦å¸CTOç¬è®°æ¥ç»åä½åäº«å ³äºPlotlyä¸djangoåªä¸ªå¥½çç¸å ³å 容ï¼å¦æè½ç¢°å·§è§£å³ä½ ç°å¨é¢ä¸´çé®é¢ï¼å«å¿äºå ³æ³¨æ¬ç«ï¼ç°å¨å¼å§å§ï¼æ¬æç®å½ä¸è§ï¼
1ãPython æåªäºå¥½ç Web æ¡æ¶2ãpythonæ¾å·¥ä½æ¯å¦Django好è¿æ¯Flask好ï¼3ãweb.pyä¸djangoï¼é£ä¸ªæ´å¥½ï¼4ãPythonä¸å¤§webæ¡æ¶åå«æ¯ä»ä¹ åªä¸ªæ´å¥½5ãpython webå¼åç¨åªä¸ªæ¡æ¶æ¯è¾å¥½Python æåªäºå¥½ç Web æ¡æ¶ä»¥ä¸æ¯ä¼¯ä¹å¨çº¿ä»GitHubä¸æ´çåºç个æå欢è¿çPythonå¼æºæ¡æ¶ãè¿äºæ¡æ¶å æ¬äºä»¶I/Oï¼OLAPï¼Webå¼åï¼é«æ§è½ç½ç»éä¿¡ï¼æµè¯ï¼ç¬è«çã
Django: Python Webåºç¨å¼åæ¡æ¶
Django åºè¯¥æ¯æåºåçPythonæ¡æ¶ï¼GAEçè³Erlangé½ææ¡æ¶åå®å½±åãDjangoæ¯èµ°å¤§èå ¨çæ¹åï¼å®æåºåçæ¯å ¶å ¨èªå¨åç管çåå°ï¼åªéè¦ä½¿ç¨èµ·ORMï¼åç®åç对象å®ä¹ï¼å®å°±è½èªå¨çææ°æ®åºç»æã以åå ¨åè½ç管çåå°ã
Dieselï¼åºäºGreenletçäºä»¶I/Oæ¡æ¶
Dieselæä¾ä¸ä¸ªæ´æ´çAPIæ¥ç¼åç½ç»å®¢æ·ç«¯åæå¡å¨ãæ¯æTCPåUDPã
Flaskï¼ä¸ä¸ªç¨Pythonç¼åçè½»é级Webåºç¨æ¡æ¶
Flaskæ¯ä¸ä¸ªä½¿ç¨Pythonç¼åçè½»é级Webåºç¨æ¡æ¶ãåºäºWerkzeug WSGIå·¥å ·ç®±åJinja2 模æ¿å¼æãFlaskä¹è¢«ç§°ä¸ºâmicroframeworkâï¼å 为å®ä½¿ç¨ç®åçæ ¸å¿ï¼ç¨extensionå¢å å ¶ä»åè½ãFlask没æé»è®¤ä½¿ç¨çæ°æ®åºãçªä½éªè¯å·¥å ·ã
Cubesï¼è½»é级Python OLAPæ¡æ¶
Cubesæ¯ä¸ä¸ªè½»é级Pythonæ¡æ¶ï¼å å«OLAPãå¤ç»´æ°æ®åæåæµè§èåæ°æ®ï¼aggregated dataï¼çå·¥å ·ã
Kartograph.pyï¼åé ç¢éå°å¾çè½»é级Pythonæ¡æ¶
Kartographæ¯ä¸ä¸ªPythonåºï¼ç¨æ¥ä¸ºESRIçæSVGå°å¾ãKartograph.pyç®åä»å¤äºbetaé¶æ®µï¼ä½ å¯ä»¥å¨virtualenvç¯å¢ä¸æ¥æµè¯ã
Pulsarï¼Pythonçäºä»¶é©±å¨å¹¶åæ¡æ¶
Pulsaræ¯ä¸ä¸ªäºä»¶é©±å¨ç并åæ¡æ¶ï¼æäºpulsarï¼ä½ å¯ä»¥ååºå¨ä¸åè¿ç¨æ线ç¨ä¸è¿è¡ä¸ä¸ªæå¤ä¸ªæ´»å¨çå¼æ¥æå¡å¨ã
Web2pyï¼å ¨æ å¼Webæ¡æ¶
Web2pyæ¯ä¸ä¸ªä¸ºPythonè¯è¨æä¾çå ¨åè½Webåºç¨æ¡æ¶ï¼æ¨å¨ææ·å¿«éçå¼åWebåºç¨ï¼å ·æå¿«éãå®å ¨ä»¥åå¯ç§»æ¤çæ°æ®åºé©±å¨çåºç¨ï¼å ¼å®¹Google App Engineã
Falconï¼æ建äºAPIåç½ç»åºç¨å端çé«æ§è½Pythonæ¡æ¶
Falconæ¯ä¸ä¸ªæ建äºAPIçé«æ§è½Pythonæ¡æ¶ï¼å®é¼å±ä½¿ç¨RESTæ¶æé£æ ¼ï¼å°½å¯è½ä»¥æå°çåæ°åæå¤çäºæ ã
Dparkï¼PythonççSpark
DParkæ¯SparkçPythonå éï¼æ¯ä¸ä¸ªPythonå®ç°çåå¸å¼è®¡ç®æ¡æ¶ï¼å¯ä»¥é常æ¹ä¾¿å°å®ç°å¤§è§æ¨¡æ°æ®å¤çåè¿ä»£è®¡ç®ãDParkç±è±ç£å®ç°ï¼ç®åè±ç£å é¨çç»å¤§å¤æ°æ°æ®åæé½ä½¿ç¨DParkå®æï¼æ£æ¥è¶å®åã
Buildbotï¼åºäºPythonçæç»éææµè¯æ¡æ¶
Buildbotæ¯ä¸ä¸ªå¼æºæ¡æ¶ï¼å¯ä»¥èªå¨å软件æ建ãæµè¯ååå¸çè¿ç¨ãæ¯å½ä»£ç ææ¹åï¼æå¡å¨è¦æ±ä¸åå¹³å°ä¸ç客æ·ç«¯ç«å³è¿è¡ä»£ç æ建åæµè¯ï¼æ¶é并æ¥åä¸åå¹³å°çæ建åæµè¯ç»æã
Zerorpcï¼åºäºZeroMQçé«æ§è½åå¸å¼RPCæ¡æ¶
Zerorpcæ¯ä¸ä¸ªåºäºZeroMQåMessagePackå¼åçè¿ç¨è¿ç¨è°ç¨åè®®ï¼RPCï¼å®ç°ãå Zerorpc ä¸èµ·ä½¿ç¨ç Service API 被称为 zeroserviceãZerorpc å¯ä»¥éè¿ç¼ç¨æå½ä»¤è¡æ¹å¼è°ç¨ã
Bottle: å¾®åPython Webæ¡æ¶
Bottleæ¯ä¸ä¸ªç®åé«æçéµå¾ªWSGIçå¾®åpython Webæ¡æ¶ã说微åï¼æ¯å 为å®åªæä¸ä¸ªæ件ï¼é¤Pythonæ ååºå¤ï¼å®ä¸ä¾èµäºä»»ä½ç¬¬ä¸æ¹æ¨¡åã
Tornadoï¼å¼æ¥éé»å¡IOçPython Webæ¡æ¶
Tornadoçå ¨ç§°æ¯Torado Web Serverï¼ä»ååä¸çå°±å¯ç¥éå®å¯ä»¥ç¨ä½Webæå¡å¨ï¼ä½åæ¶å®ä¹æ¯ä¸ä¸ªPython Webçå¼åæ¡æ¶ãæåæ¯å¨FriendFeedå ¬å¸çç½ç«ä¸ä½¿ç¨ï¼FaceBookæ¶è´äºä¹å便å¼æºäºåºæ¥ã
webpy: è½»é级çPython Webæ¡æ¶
webpyç设计ç念åæ±ç²¾ç®ï¼Keep it simple and powerfulï¼ï¼æºç å¾ç®çï¼åªæä¾ä¸ä¸ªæ¡æ¶æå¿ é¡»çä¸è¥¿ï¼ä¸ä¾èµå¤§éç第ä¸æ¹æ¨¡åï¼å®æ²¡æURLè·¯ç±ã没æ模æ¿ä¹æ²¡ææ°æ®åºç访é®ã
Scrapyï¼Pythonçç¬è«æ¡æ¶
Scrapyæ¯ä¸ä¸ªä½¿ç¨Pythonç¼åçï¼è½»é级çï¼ç®å轻巧ï¼å¹¶ä¸ä½¿ç¨èµ·æ¥é常çæ¹ä¾¿ã
pythonæ¾å·¥ä½æ¯å¦Django好è¿æ¯Flask好ï¼
è¿ä¿©é½æºç®åçï¼Djangoåflaské½å¦ä¸ä¸æ¯è¾å¥½ï¼Pythonåºç¡ä¹å¾éè¦ãè¿ä¿©å¦å¥½äºï¼å·¥ä½ä¸æï¼èªèµè¿æ¯çå ·ä½æ åµã
web.pyä¸djangoï¼é£ä¸ªæ´å¥½ï¼ä¸ç¥éä½ è¦åä»ä¹ç±»åçåºç¨ãweb.pyæ¯è½»é级没éï¼djangoä¹ä¸è§å¾æå¤ééãä½æ¯ådjangoå¼åï¼åªè¦ä½ ç¨å°æ°æ®åºï¼ä½ ä¼è§å¾ååæ¹ä¾¿ãè³äºè¯´è¦æ¹å¨çå æ ¸å¤ï¼ä¸è¬çç½ç»åºç¨ç¨åºï¼ç»å¯¹ä¸éè¦ä½ å»æ¹ä»ä¹å æ ¸ãè³å°å°ç®å为æ¢ï¼æèªå·±è¿æ²¡æ碰å°è¦æ¹å æ ¸çæ åµãè¯è¯´å¦æä½ çæ°´å¹³é«å°è½æ¹å æ ¸çç¨åº¦äºï¼ä¹å°±ä¸éè¦åçº ç»äºè¿ä¸ªé®é¢äºï¼èªå·±é½å¯ä»¥åä¸ä¸ªæ¡æ¶äºã
个人认为djangoæ¯ç¸å½å¹³è¡¡èå好ç¨çãæ¯å¦è¯´djangoçModelåTemplateï¼ä½ æ¢å¯ä»¥ç¨ï¼ä¹å¯ä»¥ä¸ç¨ï¼æ²¡æ说ä¸å®å¼ºè¿«ä½ ç¨ãæ以说djangoæ¯éé级çï¼ä¼°è®¡ä¹æ¯ä¸ç¥å解ã
åä¸è¬çç½ç»åºç¨ï¼å¼ºç建议使ç¨django.
Pythonä¸å¤§webæ¡æ¶åå«æ¯ä»ä¹ åªä¸ªæ´å¥½ã导读ãç®åï¼Pythonæ¯è¾ç«çä¸å¤§webæ¡æ¶æDjangoãFlaskåTornadoï¼è¦è®ºè¿ä¸ä¸ªWebæ¡æ¶åªä¸ªæ´å¥½çè¯ï¼å»ºè®®ä¸ç¹ï¼Django帮æ们äºå æ建äºå¥½å¤ï¼ä¸æä¼å¿«ä¸äºï¼å¦ä¹ çè¯å¯ä»¥å ä»Djangoå¦èµ·ï¼ç¶ååå¦ä¹ FlaskåTornadoï¼ä¸é¢æ们就æ¥å ·ä½äºè§£ä¸ä¸Pythonä¸å¤§webæ¡æ¶ç详æ ã
1ãDjango
Djangoæ¯ä¸ä¸ªå¼æ¾æºä»£ç çWebåºç¨æ¡æ¶ï¼ç±Pythonåæãéç¨äºMTVçæ¡æ¶æ¨¡å¼ï¼å³æ¨¡åMï¼æ¨¡æ¿Tåè§å¾Vãå®æåæ¯è¢«å¼åæ¥ç¨äºç®¡çå³ä¼¦æ¯åºçéå¢æä¸çä¸äºä»¥æ°é»å 容为主çç½ç«çï¼å³æ¯CMS(å 容管çç³»ç»)软件ã
2ãFlask
Flaskæ¯ä¸ä¸ªä½¿ç¨Pythonç¼åçè½»é级Webåºç¨æ¡æ¶ãå ¶ WSGIå·¥å ·ç®±éç¨Werkzeug ï¼æ¨¡æ¿å¼æåä½¿ç¨ Jinja2
ãFlask使ç¨BSDææã
Flaskä¹è¢«ç§°ä¸º âmicroframeworkâ ï¼å 为å®ä½¿ç¨ç®åçæ ¸å¿ï¼ç¨ extension
å¢å å ¶ä»åè½ãFlask没æé»è®¤ä½¿ç¨çæ°æ®åºãçªä½éªè¯å·¥å ·ã
Flask å¾è½»ï¼è±å¾å°çææ¬å°±è½å¤å¼åä¸ä¸ªç®åçç½ç«ãé常éååå¦è å¦ä¹ ãFlask æ¡æ¶å¦ä¼ä»¥åï¼å¯ä»¥èèå¦ä¹ æ件ç使ç¨ãä¾å¦ä½¿ç¨ WTForm +
Flask-WTForm æ¥éªè¯è¡¨åæ°æ®ï¼ç¨ SQLAlchemy + Flask-SQLAlchemy æ¥å¯¹ä½ çæ°æ®åºè¿è¡æ§å¶ã
3ãTornado
Tornadoæ¯ä¸ç§ Web æå¡å¨è½¯ä»¶çå¼æºçæ¬ãTornado åç°å¨çä¸»æµ Web æå¡å¨æ¡æ¶(å æ¬å¤§å¤æ° Python
çæ¡æ¶)æçææ¾çåºå«ï¼å®æ¯éé»å¡å¼æå¡å¨ï¼èä¸é度ç¸å½å¿«ã
å¾å©äºå ¶ éé»å¡çæ¹å¼å对epollçè¿ç¨ï¼Tornado æ¯ç§å¯ä»¥å¤çæ°ä»¥å计çè¿æ¥ï¼å æ¤ Tornado æ¯å®æ¶ Web æå¡çä¸ä¸ª
çæ³æ¡æ¶ã
å ³äºPythonä¸å¤§webæ¡æ¶çç®åä»ç»ï¼å°±ç»å¤§å®¶å享å°è¿éäºï¼å½ç¶å¦ä¹ æ¯æ°¸æ æ¢å¢çï¼å¦ä¹ ä¸é¡¹æè½æ´æ¯åçç»èº«ï¼æ以ï¼åªè¦è¯åªåå¦ï¼ä»ä¹æ¶åå¼å§é½ä¸æï¼å¸æ大家æç´§æ¶é´è¿è¡å¦ä¹ å§ã
python webå¼åç¨åªä¸ªæ¡æ¶æ¯è¾å¥½ï¼1ï¼DjangoãDjangoçææ¡£æå®åãå¸åºå æçæé«ãæèèä½æå¤ä¼°è®¡å¤§å®¶é½æ²¡ä»ä¹æè§ãå®ç¾çææ¡£ï¼Djangoçæåï¼æè§å¾å¾å¤§ä¸é¨ååå è¦å½åäºDjangoè¿ä¹å®ç¾çå®æ¹ææ¡£ï¼å æ¬Django bookï¼ãå ¨å¥ç解å³æ¹æ¡ï¼Django象Railsä¸æ ·ï¼æä¾å ¨å¥ç解å³æ¹æ¡ï¼full-stack framework + batteries includedï¼ï¼åºæ¬è¦ä»ä¹æä»ä¹ï¼æ¯å¦ï¼cacheãsessionãfeedãormãgeoãauthï¼ï¼èä¸å ¨é¨Djangoèªå·±é ï¼å¼åç½ ç«åºæçå·¥å ·Djangoåºæ¬é½ç»ä½ å好äºï¼å æ¤å¼åæçæ¯ä¸ç¨è¯´çï¼åºäºé®é¢ä¹ç®å¥½æ¾ï¼ä¸å¨ä½ ç代ç éå°±å¨Djangoçæºç éã
ï¼2ï¼PylonsåDjangoç设计ç念å®å ¨ä¸åï¼Pylonsæ¬èº«åªæ两åè¡å·¦å³çPython代ç ï¼ä¸è¿å®è¿é带æä¸äºå ä¹å°±æ¯Pylonså¾¡ç¨ ç第ä¸æ¹æ¨¡åãPylonsåªæä¾ä¸ä¸ªæ¶ååå¯éæ¹æ¡ï¼ä½ å¯ä»¥æ ¹æ®èªå·±çå好èªç±çéæ©TemplateãORMãformãauthçç»ä»¶ï¼ç³»ç»é«åº¦å¯ å®å¶ãæ们常说Pythonæ¯ä¸ä¸ªè¶æ°´è¯è¨(glue language)ï¼é£ä¹æ们å®å ¨å¯ä»¥è¯´Pylonså°±æ¯ä¸ä¸ªç¨è¶æ°´è¯è¨è®¾è®¡çè¶æ°´æ¡æ¶ã
ï¼3ï¼Tornadoå³æ¯ä¸ä¸ªWeb serverï¼å¯¹æ¤æ¬æä¸ä½è¯¦è¿°ï¼ï¼åæ¶åæ¯ä¸ä¸ªç±»web.pyçmicro-frameworkï¼ä½ä¸ºæ¡æ¶Tornadoçææ³ä¸»è¦æ¥æºäºWeb.pyï¼å¤§å®¶å¨Web.pyçç½ç«é¦é¡µä¹å¯ä»¥çå°Tornadoç大佬Bret Taylorçè¿ä¹ä¸æ®µè¯ï¼ä»è¿é说çFriendFeedç¨çæ¡æ¶è·Tornadoå¯ä»¥çä½æ¯ä¸ä¸ªä¸è¥¿ï¼ï¼
ï¼4ï¼BottleåFlaskä½ä¸ºæ°çä¸ä»£Pythonæ¡æ¶ç代表ï¼æºæææçæ¯é½éç¨äºdecoratorçæ¹å¼é ç½®URLè·¯ç±ã
ï¼5ï¼Flask ç²¾ç®
ï¼6ï¼web.py é常精ç®
ç»è¯ï¼ä»¥ä¸å°±æ¯é¦å¸CTOç¬è®°ä¸ºå¤§å®¶æ´ççå ³äºPlotlyä¸djangoåªä¸ªå¥½çç¸å ³å 容解çæ±æ»äºï¼å¸æ对æ¨ææ帮å©ï¼å¦æ解å³äºæ¨çé®é¢æ¬¢è¿å享ç»æ´å¤å ³æ³¨æ¤é®é¢çæååï½
pythonè½åä»ä¹
pythonçç¨éï¼Pythonçä¼å¿æå¿ è¦ä½ä¸ºç¬¬ä¸æ¥å»äºè§£ï¼Pythonä½ä¸ºé¢å对象çèæ¬è¯è¨ï¼ä¼å¿å°±æ¯æ°æ®å¤çåææï¼è¿ä¹æ³¨å®äºå®åAIãäºèç½ææ¯çç´§å¯èç³»ã
ç½ç»ç¬è«ã顾åæä¹ï¼ä»äºèç½ä¸ç¬åä¿¡æ¯çèæ¬ï¼ä¸»è¦ç±urllibãrequestsçåºç¼åï¼å®ç¨æ§å¾å¼ºï¼å°ç¼å°±æ¾åè¿ç¬å5wæ°æ®éçç¬è«ãå¨å¤§æ°æ®é£é¡çæ¶ä»£ï¼ç¬è«ç»å¯¹æ¯æ°ç§ã
人工æºè½ãAI使Pythonä¸ææåï¼AIçå®ç°å¯ä»¥éè¿tensorflowåºãç¥ç»ç½ç»çæ ¸å¿å¨äºæ¿æ´»å½æ°ãæ失å½æ°åæ°æ®ï¼æ°æ®å¯ä»¥éè¿ç¬è«è·å¾ãè®ç»æ¶å¤§éçæ°æ®è¿ç®åæ¯Pythonçshow timeã
æ©å±èµæï¼
Pythonå¼å人åå°½éé¿å¼ä¸æçæè ä¸éè¦çä¼åãä¸äºé对ééè¦é¨ä½çå å¿«è¿è¡é度çè¡¥ä¸é常ä¸ä¼è¢«å并å°Pythonå ãå¨æäºå¯¹è¿è¡é度è¦æ±å¾é«çæ åµï¼Python设计å¸å¾åäºä½¿ç¨JITææ¯ï¼æè ç¨ä½¿ç¨C/C++è¯è¨æ¹åè¿é¨åç¨åºãå¯ç¨çJITææ¯æ¯PyPyã
Pythonæ¯å®å ¨é¢å对象çè¯è¨ãå½æ°ã模åãæ°åãå符串é½æ¯å¯¹è±¡ã并ä¸å®å ¨æ¯æ继æ¿ãéè½½ãæ´¾çãå¤ç»§æ¿ï¼æçäºå¢å¼ºæºä»£ç çå¤ç¨æ§ã
Pythonæ¯æéè½½è¿ç®ç¬¦åå¨æç±»åãç¸å¯¹äºLispè¿ç§ä¼ ç»çå½æ°å¼ç¼ç¨è¯è¨ï¼Python对å½æ°å¼è®¾è®¡åªæä¾äºæéçæ¯æãæ两个æ ååº(functools,uniapp框架源码解读 itertools)æä¾äºHaskellåStandard MLä¸ä¹ ç»èéªçå½æ°å¼ç¨åºè®¾è®¡å·¥å ·ã
åèèµææ¥æºï¼ç¾åº¦ç¾ç§-Python