什麼是Web開發?如何成為一個Python Web開發人員?
本文的文字及圖片來源於網路,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯絡我們以作處理
以下文章來源於Python七號 ,作者 somenzz
前言
學了 Python 這麼長時間了,終究覺得程式語言僅僅是個工具,要想通過技術實現自己地價值,終究離不開具體的應用場景,而應用場景繁多,我們的時間和精力都是有限的,不可能什麼都能學好,必須做出選擇,就像打遊戲時選擇英雄的職業,是法師還是打野,只能選擇一個,一旦選好,遊戲結束前不可更改。
程式設計也是一樣,選擇一個方向,勤學苦練,深入下去,不要輕易改變。對於 Python,主要的應用領域有 5 大類,自動化測試或運維,爬蟲,資料分析,Web 開發,機器學習或人工智慧,這幾個領域的入門難度從自動化到機器學習也是從易到難,尤其是機器學習,對 Python 的要求並不高,反而是數學及演算法要精通。
相信每個人都有自己的職業選擇,今天來分享下使用 Python 從事 Web 開發的完整指南,主要有以下內容:
- 什麼是 Web 開發?
- 為什麼 Python 適合 Web 開發?
- 有哪些流行的 Python Web 框架?
- 有哪些用於 Web 開發的 Python 庫?
- Web 開發學習路線圖
- 用 Python 建立第一個 Web 應用程式
- 成為 Python Web 開發人員
1、什麼是網站開發?
對於那些剛接觸程式設計的人,可能想知道到底什麼是 Web 開發。儘管不可能精確地指出一個確切的術語,但是 Web 開發可以粗略地定義為構建、建立和維護一個網站。通常,Web 開發涉及一個前端,與客戶端互動的所有內容,以及一個後端,包含業務邏輯並與資料庫互動。前端涉及 html、css、javascript 和由此衍生出的庫及框架,如 Angular、React、Vue,可謂學無止境。後端可以有很多語言實現,這裡就是 Python 了,也有非常豐富的框架,後面會提到。
2、為什麼 Python 適合 Web 開發?
一是易於學習:Python 是初學者最流行的語言,與 Java 和 C ++ 等其他語言相比,你可以編寫更少的程式碼,減少出錯,從而提升效率。不僅如此,它還具有較低的進入門檻,因為它與日常語言相對更相似,可以輕鬆地理解程式碼。
二是具有豐富的生態系統和庫:Python 提供了廣泛的庫工具和包,可以訪問許多預先編寫的程式碼,從而縮短了應用程式的開發時間。例如,你可以使用Numpy 和 Pandas 進行數學分析,使用 Pygal 進行圖表分析,並使用 SLQALchemy 進行可組合查詢。Python 還提供了驚人的 Web 框架,例如Django 和 Flask,後面部分深入探討。
三是快速原型製作:與其他程式語言相比,Python 可以節省大量的時間來構建專案,你的想法可以更快地實現,從而可以更快的獲得反饋並快速迭代。這種高效的開發使 Python 特別適合那些可以更快進入市場以獲得競爭優勢的創業公司。
四是廣泛流行:Python 是世界上最受歡迎的語言之一,擁有來自世界各地的社群貢獻,幾乎所有的技術問題通過搜尋引擎都可以很快找到解決方案。Python 本身也在不斷更新以提供新功能和庫,同時還提供了出色的文件和社群支援。特別是對於新開發人員,Python 提供了廣泛的支援和框架。
3、有哪些流行的 Python Web 框架?
什麼是 Web 框架,為什麼如此重要?可以把 Web 框架想象成一個工具箱。一個 Web 框架是預先寫好的,由標準化的程式碼組成,為編寫 Web 應用程式服務,目的是為了使開發更快、更容易,包裝和模組的集合,使 web 應用程式更加可靠,更容易擴充套件。換句話說,框架讓你不必做繁瑣的工作。
Python Web 框架僅在後端用於伺服器端技術,用在 URL 路由,HTTP 請求和響應,訪問資料庫以及 Web 安全。雖然不一定非要使用 Web 框架,但強烈建議您使用它,因為它可以幫助你用更少的時間開發更復雜的應用程式。
那麼有哪些流行的 Python Web 框架呢?
1、Django
為了在更短的時間內建立複雜、高質量的 web 應用,很多 web 開發人員會首選 Django 框架。Django 提供了一個開放原始碼的高階框架,鼓勵快速開發和簡潔實用的設計,同時還提供了強大的社群支援和詳細的文件。Django 與時俱進,根據 web 開發的趨勢相對地更新其功能。Django 的特色如下:
•開放原始碼•全棧框架(一條龍服務,完整的解決方案)•許可權認證•URL 路由•模版引擎•DRY ( don’t repeat yourself) 設計模式•ORM 對映•資料庫架構支援,支援 PostgreSQL, MySQL , SQLite, Oracle•遵循 MVC 設計架構
官方文件是最好的教程,可以從零開始構建第一個程式。Django 非常靈活,您可以與大型公司的 MVP 合作,使用 Django 的一些最大的公司是Instagram,Dropbox,Pinterest 和 Spotify。
2、Flask
Flask 被認為是一個微框架,是一個簡約的 Web 框架。它不那麼“包含電池”,這意味著它缺少像 Django 這樣的全棧框架提供的許多特性和功能,例如 Web 模板引擎,賬戶授權和身份驗證。其主要特色如下:
•一個輕量級、微框架•學習成本相對較低,入門快•支援 JinJa2 模版引擎•繼Django模板語言之後的現代模板語言
Flask 極簡且輕巧,這意味著您可以在編寫程式碼時新增所需的擴充套件和庫。Flask背後的理念是,它僅提供構建應用程式所需的元件,因此開發人員具有很大的靈活性和控制力。Flask 還是一種流行且功能強大的 Web 框架,已被 Netflix,Linkedin 和 Uber 等大公司使用。
3、Bottle
它被普遍稱為小型微框架。它主要關注 Web API,並嘗試將所有內容捆綁在一個文件中,除了 Python 標準庫外,它沒有依賴項。Bottle 的特色如下:
•微框架•單一原始檔最初是用於構建api的,這意味著所有內容都在一個原始檔中。•URL路由。•模板引擎。•實用程式。•WSGI標準上的抽象。
Bottle 非常適合用於原型設計,學習 Web 框架的組織以及構建簡單的個人應用程式。
4、CherryPy
CherryPy 是一個內嵌多鏈伺服器的流行框架,包含伺服器池、安裝框架和模組框架。其特色是:
•開源極簡主義•一次執行多個 htpp 伺服器•強大的配置和靈活的外掛系統•內建對概要分析,覆蓋和測試的支援
5、Pyramid
Pyramid 是 Pylon 專案的一部分;它是 Python 語言中最靈活的框架之一。該框架允許開發人員選擇任何東西如:DBMS,URL 結構,模板樣式等等。
6、Web2Py
Web2Py 允許偵錯程式和程式碼編輯器通過部署工具來編輯程式碼和除錯程式碼。它使開發人員能夠通過 Web 瀏覽器開發,修改,部署和管理Web應用程式。
每年都可能會有新的框架、或已有框架推出新特性,作為開發者應該使用哪個?
到目前為止,Django 是最受歡迎的框架,其次是 Flask,如果你不知道怎麼選就從這兩者中選擇一個吧。
你可能還會問:我應該選擇 Django 還是 Flask?答案是,這取決於 Web 開發人員的技能水平。如果很有經驗,請考慮使用更多的“準系統”來開發程式。而如果您是初級開發人員,則最好使用提供更多支援(例如 Django)的框架。
另外,問問自己,是希望使用基礎程式碼庫進行構建還是希望靈活地構建程式碼庫的主幹?如果是前者請使用 Django;如果是後者,請選擇 Flask。歸根結底,他們倆都可以實現相同的功能,更重要的是開始編碼,而不是為哪種框架更好而煩惱。
4、有哪些用於 Web 開發的 Python 庫?
如果需要 Web 爬蟲為你的應用程式提取資料,Scrapy 非常適合。它是用於抓取,資料探勘,自動化測試等的廣泛使用的庫。
Zappa 是一個功能強大的庫,用於在AWS Lambda 上開發無伺服器應用程式。
Requests 庫可可以輕鬆傳送 HTTP 請求,用於與應用程式進行通訊,獲取 HTML 頁面資料。
另一個有用的庫是 Dash,它可以幫助開發與資料視覺化有關的 Web 應用程式。它基於 Flask 構建,提供諸如圖表,圖形,儀表板等功能。
5、Web 開發學習路線圖
步驟 1: 基礎知識儲備
首先,前端的三個最基本的東西 HTML 5、CSS 3 和 JavaScript(ES6)是必須要學好的。這其中有很多很多的技術,比如,CSS 3 引申出來的 Canvas(點陣圖)、SVG(向量圖) 和 WebGL(3D 圖),以及 CSS 的各種圖形變換可以讓你做出非常豐富的渲染效果和動畫效果。ES6 簡直就是把 JavaScript 帶到了一個新的臺階,JavaScript 語言的強大,大大釋放了前端開發人員的生產力,讓前端得以開發更為複雜的程式碼和程式
•JavaScript 的核心原理•瀏覽器的工作原理•HTTP 協議:HTTP/2,短連線、長連線、Stream連線、WebSocket
步驟 2: 前端框架及效能調優
目前而言,前端社群有三大框架 Angular.js、React.js 和 Vue.js。React 和 Vue 更為強大,新手可以從 Vue 開始學習。
前端效能優化方面可以看以下幾本書籍:
Web Performance in Action ,是一本很不錯的書,其中有 CSS、圖片、字型、JavaScript 效能調優等。
Designing for Performance ,講了很多網頁優化的技術和相關的工具,可以讓你對整體網頁效能優化有所瞭解。
High Performance JavaScript 讓你瞭解如何提升各方面的效能,包括程式碼的載入、執行、DOM 互動、頁面生存週期等。雅虎的前端工程師尼古拉斯·扎卡斯(Nicholas C. Zakas)和其他五位 JavaScript 專家介紹了頁面程式碼載入的最佳方法和程式設計技巧,來幫助你編寫更為高效和快速的程式碼。
步驟 3:後端技能學習
首先是伺服器相關的協議,諸如 WSGI,ASGI 協議的瞭解,其次前面提到的Python 相關的 Web 框架,還包括一些 API 框架,如:Django REST Framework、FastAPI、Flask REST frameworks 等等。
此外還要學習資料庫相關的知識,SQL 語言,資料庫相關的查詢優化也是不可或缺的。
最後服務端部署的相關技術學習,包括 nginx、uwsgi、gunicorn、https 協議等。
6、 用 Python 建立第一個 Web 應用程式
使用 Flask 建立第一個 HelloWorld 的 Web 應用程式,首先安裝 Flask。
pip install flask
建立一個 hello.py 檔案,寫入以下內容:
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __name__ == "__main__":
app.run()
程式碼很簡單,就不解釋了,執行python hello.py,然後訪問 http://locahost:5000/, 就可以看到一個顯示 "Hello World!" 字樣的網頁。
7、選擇成一個 Python Web 開發人員
恭喜!您正在逐步成為一名熟練使用 Python 的 Web 開發人員。現在應該對如何用 Python 進行 Web 開發有了一個很好的瞭解,這種瞭解,將在 Web 開發學習的道路上不迷茫。
相關文章
- 為什麼 Web 開發人員需要學習一個 JavaScript 框架?WebJavaScript框架
- python為什麼不適合web開發PythonWeb
- 什麼是DevSecOps?開發人員如何為安全而左移dev
- 為什麼說web前端開發人員的薪資高、待遇好Web前端
- 為什麼Web開發人員在2020年不用最新的CSS功能WebCSS
- Web 開發人員備忘單Web
- 為什麼要選擇Python進行Web開發?PythonWeb
- 為什麼 Python 開發人員應該使用 PipenvPython
- Python中WEB開發(一)PythonWeb
- web前端開發教程:函式是什麼Web前端函式
- 開發Web應用為什麼要用TypeScript?WebTypeScript
- Python Web開發PythonWeb
- 如何成為更好的軟體開發人員
- python怎麼做web開發PythonWeb
- 什麼是字串,web前端開發裡起到什麼作用字串Web前端
- Python Web開發需要學習什麼?Python基礎!PythonWeb
- 淺談DAST,什麼是DAST,開發人員為什麼要使用它?AST
- 為什麼說Web開發和Vue.js是如此的有趣?WebVue.js
- 為什麼要選擇Python進行Web開發?記得收藏!PythonWeb
- 移動前端開發和 Web 前端開發的區別是什麼?前端Web
- Python的web開發PythonWeb
- 如何理解Python web開發技術PythonWeb
- 學python可以做Web開發嗎?python適合Web開發嗎?PythonWeb
- 為什麼像Google公司的一些開發人員認為敏捷開發是無稽之談? - QuoraGo敏捷
- 【譯】為什麼 React16 對開發人員來說是一種福音React
- 什麼人適合學習web前端?怎樣學好web前端開發?Web前端
- 7步,讓你從零基礎成為優秀的Web前端開發人員Web前端
- 為什麼開發人員喜歡低程式碼?
- 如何建立物件,在web前端開發起到什麼作用物件Web前端
- 給 Web 開發人員的以太坊入坑指南Web
- 給Web開發人員的以太坊入坑指南Web
- 面向Web開發人員的Linux實用入門WebLinux
- 一個NB的web前端開發者,是怎麼學習的?Web前端
- 選擇WEB前端開發,如何才能不成為一個碼農Web前端
- 《Python web開發》筆記 一:網頁開發基礎PythonWeb筆記網頁
- Python Web開發:從 wsgi 開始PythonWeb
- Web前端開發和後端開發有什麼區別?Web前端後端
- Web | 淺談用Python進行Web開發WebPython