知識
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價值,我們在追求其視覺表現(xiàn)的同時,更側重于功能的便捷,營銷的便利,運營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序為后期升級提供便捷的支持!
您當前位置>首頁 » 新聞資訊 » 網(wǎng)站建設 >
Python web后端開發(fā)框架 Django 、Flask、Tornado
發(fā)表時間:2018-3-7
發(fā)布人:葵宇科技
瀏覽次數(shù):70
深入學習Python ,用Django做Web后端開發(fā)
現(xiàn)在Python的用途愈來愈廣,服務器、Web、游戲、爬蟲、數(shù)據(jù)分析 以及人工智能 學習之路還很長
技術之路 不能回頭 陷進去 就出不來 就跟戀愛一般,
學習中、項目中 印象筆記、有道云筆記、Onenote都記了好多
有朋友說,記的筆記一直放在那里會發(fā)霉、會忘記;
寫寫博客、偶爾自己看看、記錄自己的成長、同時也算一種分享
Python屬于 面向對象 解釋型 高級動態(tài)計算機程序設計語言
了解一門語言 當先了解它的整體架構、基本語法、內(nèi)置數(shù)據(jù)結構、內(nèi)置函數(shù)、標準庫以及運行模式、編程模式等。
1、Python總體架構
Python的整體架構可以分為主要三個部分:
左邊是 Python提供的內(nèi)置模塊 庫 及用戶自定義模塊
右邊是Python的運行環(huán)境,包括對象/類型系統(tǒng)、內(nèi)存分配器、運行狀態(tài)信息
中間是Python的核心 解釋器。Python運行時的數(shù)據(jù)流 詞法分析、語法分析、編譯、執(zhí)行
常用標準庫
下面是在逛CSDN每天都被灌的雞湯,總結一下缺養(yǎng)時可以補補:
編程之久除了算法和數(shù)據(jù)結構,什么也不屬于我們。
編程就是算法和數(shù)據(jù)結構,算法和數(shù)據(jù)結構是編程的靈魂。
編程中最沒用的東西是源代碼,最有用的東西是算法和數(shù)據(jù)結構。
算法和數(shù)據(jù)結構是程序的第一秘訣,缺之算法和數(shù)據(jù)結構是編程的最大原因。
算法和數(shù)據(jù)結構就是編程的一個重要部分,你若失掉了算法和數(shù)據(jù)結構,你就把一切都失掉了。
盡管少寫那么多代碼,但省下來的時間又在哪里呢?
代碼是程序員的朋友,雖然沒有熱情,但是非常忠實。
當你還不能寫出自己滿意的程序時,你就不要去睡覺。
有些代碼不應該被忘記,也沒有源代碼不應該被記住。
對代碼不滿足,是任何真正有天才的程序員的根本特征。
有編過程的人的代碼,比那些無知的人使用的軟件更有價值。
編程是一種美德,是促使一個人不斷向上發(fā)展的一種原動力。
程序員的一生時間90%是用在編程上,而剩余的10%是活在世界上。
程序員之所以犯錯誤,不是因為他們不懂,而是因為他們自以為什么都懂。
調(diào)試的錯誤就是編程給你最好的東西,因為在每個錯誤上面都標志著前進的一步。
假如編程易懂得,那么程序員就不會熱情地寫出注釋,也不會有得到編程的快樂。
代碼是最為耐心、最能忍耐和最令人愉快的伙伴,在任何艱難困苦的時刻,它都不會拋棄你
由于Python的簡潔 易讀 強大 高效 現(xiàn)在Python應用在文件處理、網(wǎng)絡編程、數(shù)據(jù)庫編程、游戲、Web開發(fā)、數(shù)據(jù)分析、機器學習等各個領域。
就Web開發(fā)而言,為了提高開發(fā)效率,應運而生了很多框架,如Django、Flask、Tornado、Web2py等。
框架很多,根據(jù)業(yè)務需求、選擇適合的框架。
1、Django
最早接觸Django,在我心中的形象是:Web框架界的變形金剛
Django的MVT架構、自帶ORM、強大的Admin后臺管理、自帶數(shù)據(jù)庫、還自帶開發(fā)測試用的服務器、不得不說服務周到。
如此大而全,重量級的Django給開發(fā)者提供了超高的開發(fā)效率。
淌著Python血液
MVT三大輪子 連接瀏覽器 數(shù)據(jù)庫開跑
一身裝備 可變形 可擴展
多領域 跨平臺 協(xié)調(diào)作戰(zhàn)
自我測試 自我管理 自我保護
友好 開放 國際化
裝備很多: 用戶認證 緩存 日志 郵件 組織 分頁 消息 序列化 會話 網(wǎng)站地圖 靜態(tài)文件處理 數(shù)據(jù)驗證Django支持第三方擴展:
比如:富文本編輯器 緩存 全文檢索 celery等
Django項目布署 用nginx做靜態(tài)資源代理、負載均衡 可以提高高并發(fā)能力。
一些Web項目開發(fā) 無論用戶量、服務群體、上來總談高并發(fā)。沒用戶 天天愁高并發(fā)問題 還沒解決也許項目已經(jīng)黃了。
項目有了、業(yè)務有了、用戶有了、性能優(yōu)化、高并發(fā)順勢解決嘛。
當然一些大型網(wǎng)站,在高性能的要求下,框架的各個部分往往都需要自己定制,這樣用Django也就沒有太大優(yōu)勢。
2、Falsk
相較于Django ,Falsk屬于輕量級Web框架,也稱‘microframework’。
Flask一個簡單的核心,基于Werkzeug WSGI工具箱和Jinja2 模板引擎。其他功能開發(fā)者根據(jù)業(yè)務需求 與喜好 添加。
如此 Falsk 自由、靈活、可擴展性很強。很適用于開發(fā)小型應用、開發(fā)大型網(wǎng)站也沒有壓力,自己設計架構、選擇合適第三方擴展,各方面性能完全不輸Django。
常用拓展包:wtf、sqlalchemy、login、script、migrate、mail
3、Tornado
傳說中實現(xiàn)高并發(fā)、高性能的框架。Tornado的全稱是Torado Web Server,可用作Web服務器,同時也是一個Python Web的開發(fā)框架。
Tornado兩大核心模塊:
iostream :對非阻塞式的 socket 的簡單封裝,用來處理 socket 的異步讀寫 ioloop :核心的 I/O 循環(huán)。基于 epoll,可以高效的響應網(wǎng)絡事其作為Web框架的主要模塊 web:包含了 Tornado 的大多數(shù)重要的功能
escape :XHTML, JSON, URL 的編碼/解碼方法
template :基于 Python 的 web 模板系統(tǒng)
httpserver : 非阻塞 HTTP server
httpclient : 異步 HTTP client 用來和web 及 httpserver 協(xié)同工作
auth :第三方認證的實現(xiàn)
locale:針對本地化和翻譯的支持
等等 Tornado 走的少而精的路子,除了Web開發(fā)需要的基本模塊,剩下的則都需要開發(fā)者自己擴展。比如需要ORM支持,那自己來擴展
Python web框架很多,在于精通。選擇適合自己的,開始搞起來。 我做項目用的多的還是Django,不自己重復造車輪子嘛。
題外話: 目前有一些公司選擇Go語言 做所謂的高性能的開發(fā) Go語言 號稱可解決現(xiàn)今多核心處理器這一大挑戰(zhàn)。
Go語言 專門針對多處理器系統(tǒng)應用程序的編程進行了優(yōu)化,使用Go編譯的程序可以媲美C或C++代碼的速度,而且更加安全、支持并行進程。
語言皆是工具 框架提高效率的工具 套用CSDN每天的雞湯: 編程之久除了算法和數(shù)據(jù)結構,什么也不屬于我們。 編程就是算法和數(shù)據(jù)結構,算法和數(shù)據(jù)結構是編程的靈魂。
算法和數(shù)據(jù)結構就是編程的一個重要部分,你若失掉了算法和數(shù)據(jù)結構,你就把一切都失掉了。
真的不知道開發(fā)者還剩下什么,當機器可以自己優(yōu)化數(shù)據(jù)結構與算法,也許我們就真的只剩下靈魂了。
斐波那契數(shù)列(Fibonacci sequence)Python實現(xiàn)的三種方案:列表 遞歸 生成器
# -*- coding: utf-8 -*- import itertools from functools import lru_cache# 列表實現(xiàn)。生成一個斐波那契數(shù)列列表 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
# 生成器實現(xiàn)。迭代時一次生成一個值 def fibo_genetator(): x, y = 0, 1 while True: yield y x, y = y, x + y
# 遞歸實現(xiàn)。[添加緩存裝飾器,提高效率] @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)]) 遞歸實現(xiàn) 使用緩存后 效率便會極大提升
相關案例查看更多
相關閱讀
- 云南省建設廳官方網(wǎng)站
- 小程序公司
- 云南小程序開發(fā)費用
- 網(wǎng)站收錄
- 云南小程序開發(fā)公司哪家好
- 昆明小程序定制開發(fā)
- 云南軟件定制
- 小程序技術
- 分銷系統(tǒng)
- painter
- web開發(fā)技術
- 網(wǎng)站沒排名
- 小程序開發(fā)排名前十名
- 云南網(wǎng)站建設百度官方
- 網(wǎng)站小程序
- 網(wǎng)站建設服務
- 網(wǎng)站建設特性
- 云南網(wǎng)頁制作
- 日歷組件
- web服務
- 小程序分銷商城
- 小程序定制
- 網(wǎng)絡營銷
- 網(wǎng)站開發(fā)公司哪家好
- 汽車報廢軟件
- 貴州小程序開發(fā)
- 云南網(wǎng)站建設報價
- 云南網(wǎng)站建設方法
- 云南網(wǎng)站建設優(yōu)化
- 云南網(wǎng)站建設費用