±à¼ÍƼö: |
±¾Îĸø´ó¼Ò½²½âPython×ÜÌå¼Ü¹¹£¬Django£¬FalskÇáÁ¿¼¶Web¿ò¼Ü£¬TornadoÁ½´óºËÐÄÄ£¿é£¬Ï£Íû¶Ô´ó¼ÒÓаïÖú¡£
±¾ÎÄÀ´×ÔÓÚcsdn£¬ÓÉ»ðÁú¹ûÈí¼þDelores±à¼£¬ÍƼö¡£ |
|
ÉîÈëѧϰPython £¬ÓÃDjango×öWebºó¶Ë¿ª·¢
ÏÖÔÚPythonµÄÓÃ;ÓúÀ´Óú¹ã£¬·þÎñÆ÷¡¢Web¡¢ÓÎÏ·¡¢ÅÀ³æ¡¢Êý¾Ý·ÖÎö ÒÔ¼°È˹¤ÖÇÄÜ Ñ§Ï°Ö®Â·»¹ºÜ³¤
¼¼Êõ֮· ²»ÄÜ»ØÍ· ÏݽøÈ¥ ¾Í³ö²»À´ ¾Í¸úÁµ°®Ò»°ã£¬
ѧϰÖС¢ÏîÄ¿ÖÐ Ó¡Ïó±Ê¼Ç¡¢ÓеÀÔÆ±Ê¼Ç¡¢Onenote¶¼¼ÇÁ˺öà
PythonÊôÓÚ ÃæÏò¶ÔÏó ½âÊÍÐÍ ¸ß¼¶¶¯Ì¬¼ÆËã»ú³ÌÐòÉè¼ÆÓïÑÔ
Á˽âÒ»ÃÅÓïÑÔ µ±ÏÈÁ˽âËüµÄÕûÌå¼Ü¹¹¡¢»ù±¾Óï·¨¡¢ÄÚÖÃÊý¾Ý½á¹¹¡¢ÄÚÖú¯Êý¡¢±ê×¼¿âÒÔ¼°ÔËÐÐģʽ¡¢±à³ÌģʽµÈ¡£
1¡¢Python×ÜÌå¼Ü¹¹

PythonµÄÕûÌå¼Ü¹¹¿ÉÒÔ·ÖΪÖ÷ÒªÈý¸ö²¿·Ö£º
×ó±ßÊÇ PythonÌṩµÄÄÚÖÃÄ£¿é ¿â ¼°Óû§×Ô¶¨ÒåÄ£¿é
ÓÒ±ßÊÇPythonµÄÔËÐл·¾³£¬°üÀ¨¶ÔÏó/ÀàÐÍϵͳ¡¢ÄÚ´æ·ÖÅäÆ÷¡¢ÔËÐÐ״̬ÐÅÏ¢
ÖмäÊÇPythonµÄºËÐÄ ½âÊÍÆ÷¡£PythonÔËÐÐʱµÄÊý¾ÝÁ÷ ´Ê·¨·ÖÎö¡¢Óï·¨·ÖÎö¡¢±àÒë¡¢Ö´ÐÐ
³£Óñê×¼¿â

ÏÂÃæÊÇÔÚ¹äCSDNÿÌì¶¼±»¹àµÄ¼¦ÌÀ£¬×ܽáÒ»ÏÂÈ±ÑøÊ±¿ÉÒÔ²¹²¹£º
±à³ÌÖ®¾Ã³ýÁËËã·¨ºÍÊý¾Ý½á¹¹£¬Ê²Ã´Ò²²»ÊôÓÚÎÒÃÇ¡£
±à³Ì¾ÍÊÇËã·¨ºÍÊý¾Ý½á¹¹£¬Ëã·¨ºÍÊý¾Ý½á¹¹ÊDZà³ÌµÄÁé»ê¡£
±à³ÌÖÐ×îûÓõĶ«Î÷ÊÇÔ´´úÂ룬×îÓÐÓõĶ«Î÷ÊÇËã·¨ºÍÊý¾Ý½á¹¹¡£
Ëã·¨ºÍÊý¾Ý½á¹¹ÊdzÌÐòµÄµÚÒ»ÃØ¾÷£¬È±Ö®Ëã·¨ºÍÊý¾Ý½á¹¹ÊDZà³ÌµÄ×î´óÔÒò¡£
Ëã·¨ºÍÊý¾Ý½á¹¹¾ÍÊDZà³ÌµÄÒ»¸öÖØÒª²¿·Ö£¬ÄãÈôʧµôÁËËã·¨ºÍÊý¾Ý½á¹¹£¬Äã¾Í°ÑÒ»Çж¼Ê§µôÁË¡£
¾¡¹ÜÉÙдÄÇô¶à´úÂ룬µ«Ê¡ÏÂÀ´µÄʱ¼äÓÖÔÚÄÄÀïÄØ£¿
´úÂëÊdzÌÐòÔ±µÄÅóÓÑ£¬ËäȻûÓÐÈÈÇ飬µ«ÊǷdz£ÖÒʵ¡£
µ±Ä㻹²»ÄÜд³ö×Ô¼ºÂúÒâµÄ³ÌÐòʱ£¬Äã¾Í²»ÒªÈ¥Ë¯¾õ¡£
ÓÐЩ´úÂë²»Ó¦¸Ã±»Íü¼Ç£¬Ò²Ã»ÓÐÔ´´úÂë²»Ó¦¸Ã±»¼Çס¡£
¶Ô´úÂë²»Âú×㣬ÊÇÈκÎÕæÕýÓÐÌì²ÅµÄ³ÌÐòÔ±µÄ¸ù±¾ÌØÕ÷¡£
Óбà¹ý³ÌµÄÈ˵ĴúÂ룬±ÈÄÇЩÎÞÖªµÄÈËʹÓõÄÈí¼þ¸üÓмÛÖµ¡£
±à³ÌÊÇÒ»ÖÖÃÀµÂ£¬ÊÇ´Ùʹһ¸öÈ˲»¶ÏÏòÉÏ·¢Õ¹µÄÒ»ÖÖÔ¶¯Á¦¡£
³ÌÐòÔ±µÄÒ»Éúʱ¼ä90%ÊÇÓÃÔÚ±à³ÌÉÏ£¬¶øÊ£ÓàµÄ10%ÊÇ»îÔÚÊÀ½çÉÏ¡£
³ÌÐòÔ±Ö®ËùÒÔ·¸´íÎ󣬲»ÊÇÒòΪËûÃDz»¶®£¬¶øÊÇÒòΪËûÃÇ×ÔÒÔΪʲô¶¼¶®¡£
µ÷ÊԵĴíÎó¾ÍÊDZà³Ì¸øÄã×îºÃµÄ¶«Î÷£¬ÒòΪÔÚÿ¸ö´íÎóÉÏÃæ¶¼±êÖ¾×Åǰ½øµÄÒ»²½¡£
¼ÙÈç±à³ÌÒ×¶®µÃ£¬ÄÇô³ÌÐòÔ±¾Í²»»áÈÈÇéµØÐ´³ö×¢ÊÍ£¬Ò²²»»áÓеõ½±à³ÌµÄ¿ìÀÖ¡£
´úÂëÊÇ×îΪÄÍÐÄ¡¢×îÄÜÈÌÄͺÍ×îÁîÈËÓä¿ìµÄ»ï°é£¬ÔÚÈκμèÄÑÀ§¿àµÄʱ¿Ì£¬Ëü¶¼²»»áÅׯúÄã
ÓÉÓÚPythonµÄ¼ò½à Ò×¶Á Ç¿´ó ¸ßЧ ÏÖÔÚPythonÓ¦ÓÃÔÚÎļþ´¦Àí¡¢ÍøÂç±à³Ì¡¢Êý¾Ý¿â±à³Ì¡¢ÓÎÏ·¡¢Web¿ª·¢¡¢Êý¾Ý·ÖÎö¡¢»úÆ÷ѧϰµÈ¸÷¸öÁìÓò¡£
¾ÍWeb¿ª·¢¶øÑÔ£¬ÎªÁËÌá¸ß¿ª·¢Ð§ÂÊ£¬Ó¦Ô˶øÉúÁ˺ܶà¿ò¼Ü£¬ÈçDjango¡¢Flask¡¢Tornado¡¢Web2pyµÈ¡£
¿ò¼ÜºÜ¶à£¬¸ù¾ÝÒµÎñÐèÇó¡¢Ñ¡ÔñÊʺϵĿò¼Ü¡£
1¡¢Django
×îÔç½Ó´¥Django£¬ÔÚÎÒÐÄÖеÄÐÎÏóÊÇ£ºWeb¿ò¼Ü½çµÄ±äÐνð¸Õ
DjangoµÄMVT¼Ü¹¹¡¢×Ô´øORM¡¢Ç¿´óµÄAdminºǫ́¹ÜÀí¡¢×Ô´øÊý¾Ý¿â¡¢»¹×Ô´ø¿ª·¢²âÊÔÓõķþÎñÆ÷¡¢²»µÃ²»Ëµ·þÎñÖܵ½¡£
Èç´Ë´ó¶øÈ«£¬ÖØÁ¿¼¶µÄDjango¸ø¿ª·¢ÕßÌṩÁ˳¬¸ßµÄ¿ª·¢Ð§ÂÊ¡£
ÌÊ×ÅPythonѪҺ
MVTÈý´óÂÖ×Ó Á¬½Óä¯ÀÀÆ÷ Êý¾Ý¿â¿ªÅÜ
Ò»Éí×°±¸ ¿É±äÐÎ ¿ÉÀ©Õ¹
¶àÁìÓò ¿çƽ̨ е÷×÷Õ½
×ÔÎÒ²âÊÔ ×ÔÎÒ¹ÜÀí ×ÔÎÒ±£»¤
ÓѺà ¿ª·Å ¹ú¼Ê»¯
×°±¸ºÜ¶à£º
Óû§ÈÏÖ¤ »º´æ ÈÕÖ¾ Óʼþ ×éÖ¯ ·ÖÒ³ ÏûÏ¢ ÐòÁл¯ »á»° ÍøÕ¾µØÍ¼ ¾²Ì¬Îļþ´¦Àí Êý¾ÝÑéÖ¤
DjangoÖ§³ÖµÚÈý·½À©Õ¹£º
±ÈÈ磺¸»Îı¾±à¼Æ÷ »º´æ È«ÎļìË÷ celeryµÈ
DjangoÏîÄ¿²¼Êð ÓÃnginx×ö¾²Ì¬×ÊÔ´´úÀí¡¢¸ºÔؾùºâ ¿ÉÒÔÌá¸ß¸ß²¢·¢ÄÜÁ¦¡£
һЩWebÏîÄ¿¿ª·¢ ÎÞÂÛÓû§Á¿¡¢·þÎñȺÌå¡¢ÉÏÀ´×Ü̸¸ß²¢·¢¡£Ã»Óû§ ÌìÌì³î¸ß²¢·¢ÎÊÌâ »¹Ã»½â¾öÒ²ÐíÏîÄ¿ÒѾ»ÆÁË¡£
ÏîÄ¿ÓÐÁË¡¢ÒµÎñÓÐÁË¡¢Óû§ÓÐÁË¡¢ÐÔÄÜÓÅ»¯¡¢¸ß²¢·¢Ë³Êƽâ¾öÂï¡£
µ±È»Ò»Ð©´óÐÍÍøÕ¾£¬ÔÚ¸ßÐÔÄܵÄÒªÇóÏ£¬¿ò¼ÜµÄ¸÷¸ö²¿·ÖÍùÍù¶¼ÐèÒª×Ô¼º¶¨ÖÆ£¬ÕâÑùÓÃDjangoÒ²¾ÍûÓÐÌ«´óÓÅÊÆ¡£
2¡¢Falsk
Ïà½ÏÓÚDjango £¬FalskÊôÓÚÇáÁ¿¼¶Web¿ò¼Ü£¬Ò²³Æ¡®microframework¡¯¡£
FlaskÒ»¸ö¼òµ¥µÄºËÐÄ£¬»ùÓÚWerkzeug WSGI¹¤¾ßÏäºÍJinja2 Ä£°åÒýÇæ¡£ÆäËû¹¦ÄÜ¿ª·¢Õ߸ù¾ÝÒµÎñÐèÇó ÓëϲºÃ Ìí¼Ó¡£
Èç´Ë Falsk ×ÔÓÉ¡¢Áé»î¡¢¿ÉÀ©Õ¹ÐÔºÜÇ¿¡£ºÜÊÊÓÃÓÚ¿ª·¢Ð¡ÐÍÓ¦Óᢿª·¢´óÐÍÍøÕ¾Ò²Ã»ÓÐѹÁ¦£¬×Ô¼ºÉè¼Æ¼Ü¹¹¡¢Ñ¡ÔñºÏÊʵÚÈý·½À©Õ¹£¬¸÷·½ÃæÐÔÄÜÍêÈ«²»ÊäDjango¡£
³£ÓÃÍØÕ¹°ü£ºwtf¡¢sqlalchemy¡¢login¡¢script¡¢migrate¡¢mail
3¡¢Tornado
´«ËµÖÐʵÏָ߲¢·¢¡¢¸ßÐÔÄܵĿò¼Ü¡£TornadoµÄÈ«³ÆÊÇTorado Web Server£¬¿ÉÓÃ×÷Web·þÎñÆ÷,ͬʱҲÊÇÒ»¸öPython WebµÄ¿ª·¢¿ò¼Ü¡£
TornadoÁ½´óºËÐÄÄ£¿é£º
iostream £º¶Ô·Ç×èÈûʽµÄ socket µÄ¼òµ¥·â×°£¬ÓÃÀ´´¦Àí socket µÄÒì²½¶Áд
ioloop £ººËÐÄµÄ I/O Ñ»·¡£»ùÓÚ epoll£¬¿ÉÒÔ¸ßЧµÄÏìÓ¦ÍøÂçÊÂ
Æä×÷ΪWeb¿ò¼ÜµÄÖ÷Ҫģ¿é
web£º°üº¬ÁË Tornado µÄ´ó¶àÊýÖØÒªµÄ¹¦ÄÜ
escape £ºXHTML, JSON, URL µÄ±àÂë/½âÂë·½·¨
template £º»ùÓÚ Python µÄ web Ä£°åϵͳ
httpserver £º ·Ç×èÈû HTTP server
httpclient £º Òì²½ HTTP client ÓÃÀ´ºÍweb ¼° httpserver Ðͬ¹¤×÷
auth £ºµÚÈý·½ÈÏÖ¤µÄʵÏÖ
locale£ºÕë¶Ô±¾µØ»¯ºÍ·ÒëµÄÖ§³Ö
µÈµÈ
Tornado ×ßµÄÉÙ¶ø¾«µÄ·×Ó£¬³ýÁËWeb¿ª·¢ÐèÒªµÄ»ù±¾Ä£¿é£¬Ê£ÏµÄÔò¶¼ÐèÒª¿ª·¢Õß×Ô¼ºÀ©Õ¹¡£±ÈÈçÐèÒªORMÖ§³Ö£¬ÄÇ×Ô¼ºÀ´À©Õ¹
Python web¿ò¼ÜºÜ¶à£¬ÔÚÓÚ¾«Í¨¡£Ñ¡ÔñÊʺÏ×Ô¼ºµÄ£¬¿ªÊ¼¸ãÆðÀ´¡£
ÎÒ×öÏîÄ¿ÓõĶàµÄ»¹ÊÇDjango£¬²»×Ô¼ºÖظ´Ôì³µÂÖ×ÓÂï¡£
ÌâÍâ»°£º
ĿǰÓÐһЩ¹«Ë¾Ñ¡ÔñGoÓïÑÔ ×öËùνµÄ¸ßÐÔÄܵĿª·¢
GoÓïÑÔ ºÅ³Æ¿É½â¾öÏÖ½ñ¶àºËÐÄ´¦ÀíÆ÷ÕâÒ»´óÌôÕ½¡£
GoÓïÑÔ ×¨ÃÅÕë¶Ô¶à´¦ÀíÆ÷ϵͳӦÓóÌÐòµÄ±à³Ì½øÐÐÁËÓÅ»¯£¬Ê¹ÓÃGo±àÒëµÄ³ÌÐò¿ÉÒÔæÇÃÀC»òC++´úÂëµÄËÙ¶È£¬¶øÇÒ¸ü¼Ó°²È«¡¢Ö§³Ö²¢Ðнø³Ì¡£
ÓïÑÔ½ÔÊǹ¤¾ß
¿ò¼ÜÌá¸ßЧÂʵŤ¾ß
Ì×ÓÃCSDNÿÌìµÄ¼¦ÌÀ£º
±à³ÌÖ®¾Ã³ýÁËËã·¨ºÍÊý¾Ý½á¹¹£¬Ê²Ã´Ò²²»ÊôÓÚÎÒÃÇ¡£
±à³Ì¾ÍÊÇËã·¨ºÍÊý¾Ý½á¹¹£¬Ëã·¨ºÍÊý¾Ý½á¹¹ÊDZà³ÌµÄÁé»ê¡£
Ëã·¨ºÍÊý¾Ý½á¹¹¾ÍÊDZà³ÌµÄÒ»¸öÖØÒª²¿·Ö£¬ÄãÈôʧµôÁËËã·¨ºÍÊý¾Ý½á¹¹£¬Äã¾Í°ÑÒ»Çж¼Ê§µôÁË¡£
ÕæµÄ²»ÖªµÀ¿ª·¢Õß»¹Ê£ÏÂʲô£¬µ±»úÆ÷¿ÉÒÔ×Ô¼ºÓÅ»¯Êý¾Ý½á¹¹ÓëËã·¨£¬Ò²ÐíÎÒÃǾÍÕæµÄֻʣÏÂÁé»êÁË¡£
ì³²¨ÄÇÆõÊýÁУ¨Fibonacci sequence£©PythonʵÏÖµÄÈýÖÖ·½°¸£ºÁÐ±í µÝ¹é Éú³ÉÆ÷
# -*- coding:
utf-8 -*-
import itertools
from functools import lru_cache |
# ÁбíʵÏÖ¡£Éú³ÉÒ»¸öì³²¨ÄÇÆõÊýÁÐÁбí
def fibo(num):
fibo_list = []
if num <= 0:
return fibo_list
else:
x, y = 0, 1
for i in range(num):
fibo_list.append(y)
x, y = y, x + y
return fibo_list |
# Éú³ÉÆ÷ʵÏÖ¡£µü´úʱһ´ÎÉú³ÉÒ»¸öÖµ
def fibo_genetator():
x, y = 0, 1
while True:
yield y
x, y = y, x + y |
# µÝ¹éʵÏÖ¡£[Ìí¼Ó»º´æ×°ÊÎÆ÷£¬Ìá¸ßЧÂÊ]
@lru_cache(maxsize=None)
def fibo_recursive(num):
if num < 0:
return 0
if num <= 1:
return num
return fibo_recursive(num - 1) + fibo_recursive(num
- 2)
print(fibo(10))
print(list(itertools.islice (fibo_genetator(),
10)))
print([fibo_recursive(i) for i in range(1, 11)]) |
µÝ¹éʵÏÖ Ê¹Óûº´æºó ЧÂʱã»á¼«´óÌáÉý
|