1. python怎麼做web開發
用Python做Web開發,Django框架是個非常好的起點。
Django是一個開放源代碼的Web應用框架,由Python寫成。採用了MTV的框架模式,即模型M,視圖V和模版T。它最初是被開發來用
於管理勞倫斯出版集團旗下的一些以新聞內容為主的網站的,即是CMS(內容管理系統)軟體。並於2005年7月在BSD許可證下發布。
Django已經成為web開發者的首選框架,是一個遵循 MVC 設計模式的框架。MVC是Model、View、Controller三個單詞的簡寫,分別
代表模型、視圖、控制器。Django其實也是一個MTV 的設計模式。MTV是Model、Template、View三個單詞的簡寫,分別代表模型、
模版、視圖 。但是在Django中,控制器接受用戶輸入的部分由框架自行處理,所以 Django 里更關注的是模型(Model)、模板
(Template)和視圖(Views),稱為 MTV模式。
Django 視圖不處理用戶輸入,而僅僅決定要展現哪些數據給用戶,而Django 模板 僅僅決定如何展現Django視圖指定的數據。或者說,
Django將MVC中的視圖進一步分解為 Django視圖 和 Django模板兩個部分,分別決定 「展現哪些數據」 和 「如何展現」,使得
Django的模板可以根據需要隨時替換,而不僅僅限制於內置的模板。
至於MVC控制器部分,由Django框架的URLconf來實現。URLconf機制是使用正則表達式匹配URL,然後調用合適的Python函數。
URLconf對於URL的規則沒有任何限制,你完全可以設計成任意的URL風格,不管是傳統的,RESTful的,或者是另類的。框架把控制層
給封裝了,無非與數據交互這層都是資料庫表的讀,寫,刪除,更新的操作。在寫程序的時候,只要調用相應的方法就行了,感覺很方便。程
序員把控制層東西交給Django自動完成了。 只需要編寫非常少的代碼完成很多的事情。所以,它比MVC框架考慮的問題要深一步,因為
我們程序員大都在寫控制層的程序。這個工作交給了框架,僅需寫很少的調用代碼,大大提高了工作效率。
更多技術請關注Python視頻教程。
2. python web 在編寫的時候 form提交的疑惑。
Django咯。。。
3. 如何用Python做Web開發
Python的Web開發,也是工作崗位比較多的領域。
一、基於Python的代表性Web框架
下面是一些比較有代表性的框架:
Django:
Python 界最全能的 Web 開發框架,battery-include 各種功能完備,可維護性和開發速度一級棒。常有人說 Django 慢,其實主要慢在 Django ORM 與資料庫的交互上,所以是否選用 Django,取決於項目對資料庫交互的要求以及各種優化。而對於 Django 的同步特性導致吞吐量小的問題,其實可以通過 Celery 等解決,倒不是一個根本問題。Django 的項目代表:Instagram,Guardian。
4. 想做Python Web 開發,需要掌握哪些技能
Python的學習內容還是比較多的,我們將學習的過程劃分為4個階段,每個階段學習對應的內容,具體的學習順序如下:
Python學習順序:
①Python軟體開發基礎
掌握計算機的構成和工作原理
會使用Linux常用工具
熟練使用Docker的基本命令
建立Python開發環境,並使用print輸出
使用Python完成字元串的各種操作
使用Python re模塊進行程序設計
使用Python創建文件、訪問、刪除文件
掌握import 語句、From…import 語句、From…import* 語句、方法的引用、Python中的包
能夠使用Python面向對象方法開發軟體
能夠自己建立資料庫,表,並進行基本資料庫操作
掌握非關系資料庫MongoDB的使用,掌握Redis開發
能夠獨立完成TCP/UDP服務端客戶端軟體開發,能夠實現ftp、http伺服器,開發郵件軟體
能開發多進程、多線程軟體
能夠獨立完成後端軟體開發,深入理解Python開發後端的精髓
能夠獨立完成前端軟體開發,並和後端結合,熟練掌握使用Python進行全站Web開發的技巧
能夠使用Python熟練編寫爬蟲軟體
能夠熟練使用Python庫進行數據分析
招聘網站Python招聘職位數據爬取分析
掌握使用Python開源人工智慧框架進行人工智慧軟體開發、語音識別、人臉識別
掌握基本設計模式、常用演算法
掌握軟體工程、項目管理、項目文檔、軟體測試調優的基本方法
②Python軟體開發進階
③Python全棧式WEB工程師
④Python多領域開發
互聯網行業目前還是最熱門的行業之一,學習IT技能之後足夠優秀是有機會進入騰訊、阿里、網易等互聯網大廠高薪就業的,發展前景非常好,普通人也可以學習。
想要系統學習,你可以考察對比一下開設有相關專業的熱門學校,好的學校擁有根據當下企業需求自主研發課程的能力,中博軟體學院、南京課工場、南京北大青鳥等開設python專業的學校都是不錯的,建議實地考察對比一下。
祝你學有所成,望採納。
5. 如何用Python做Web開發
1.python入門
推薦老齊《從零開始學python》,《python簡明教程》,這兩本書很適合小白入門(像我一樣長期徘徊在編程門外的人)
2.python進階
推薦《python學習手冊》,python學習手冊的前半部分與在入門教程中的基礎部分相重復,後面部分對python的介紹更細致,比如面向對象的這部分對於小白理解相對容易。
還有一本《python cookbook》,這本是在講述python的經典用法,目前讀過函數,裝飾器以及網路編程這三部分,在不斷的敲玩具代碼的過程中,會發現書中講的例子不斷會出現。
3.學習web開發,自然要涉及到基於python的web 框架。
1)flask
flask如同官方所描述的那樣,是一個web微框架,用幾行代碼就可以實現一個在hello world,現在的個人感覺是flask確實適合新手入門。基於這個原則,
推薦《flask web 開發》這本書,這本書簡直是良心,講的很細,並且在github上有源碼,可以很容易跟著作者的步驟去學習,不懂得的地方可以去問谷歌或者qq群。
推薦的第二本是《building web applications with flask》這本書是對flask框架的細化,深入講解flask的模板,restful等等,雖然是英文,但是葉能順利閱讀下去
推薦的第三本是《flask Framework cookbook》,這三本書是一個不段進階的部分。
2)django
django是大而全,開箱即用,在flask了解的差不多的時候去了解,畢竟生成環境用的django相對多一點。
django學習可以看得書:(1)tango with django只有一個應用去學習,對於新手友好,可以比對github源碼
(2)django by example 注重實戰,有幾個實例,blog, shop etc,涉及django基礎,redis,celery,solr,ajax,很全面,也是web開發常用的技術
4.在學習框架的過程中,會不斷體會到前端的知識也是要補回來,可以w3c school看一下。
5.資料庫,在python中內置了sqlite, sql命令有相同之處,路線是sqlite, mysql, mongodb,有個逐漸過度的過程。
6.了解http的具體工作流程,這點目前還是有點模糊
7.工具集:sublime(需要配置,主要用於python編程,神器誰用誰知道), vim, firebug, firefox, linux,github(代碼大寶庫,各種代碼)
8.學習的過程覺得幾點很重要
1)做好筆記,同樣的問題會遇到第二次,有個筆記容易復查
2)善用谷歌,善用qq與論壇,你現在遇到的問題,大多數前人都遇到過,stackflow是個好地方
3)迷茫的時候還是堅持看,因為畢竟是小白,不懂的太多,你總要把他弄懂
4)有時間了可以把演算法與數據結構補起來
6. 如何開發一個Python web框架
首先你需要知道一個Web應用基本的請求處理流程。以最簡單最原始的動態網頁為例,你點擊鏈接(GET),提交表單(POST),就是與伺服器端建立了連接之後發送了一個HTTP請求(RFC2616 5.1節,之後都以HTTP 1.1為例),裡面至少有方法(動詞,就是GET啦POST什麼的,詳見RFC2616第9節),地址(URL),HTTP版本,還可能帶上Cookie(會話的一般實現機制),緩存相關的信息(RFC2616 13節),User-Agent串等等一堆信息。對於POST請求我們還有表單內容作為請求實體(RFC2616 7.2節),裡面是你填寫的表單內容。
於是我們有了一些關於請求的數據,不過現在一般來講這些數據還在前端伺服器(反向代理,比如nginx,暫且忽略掉負載均衡,反正是透明的,也不考慮裸WSGI容器直接扛請求的情況)的手上,還沒有傳進後端語言(這里是Python)。我們就針對每一種語言都有特定的機制,用來將HTTP的請求信息映射到相應的編程語言范疇,叫做Web伺服器界面(Web server interface),通用如CGI/FCGI/SCGI,特定於某一語言如WSGI/PSGI/Rack/...,特定於某一操作系統如ISAPI(這貨還活著?),一些已經不再使用的就不提了。總之在Python世界裡這就是WSGI(PEP 3333, Web Server Gateway Interface),它就定義了Python語言與Web伺服器之間的界面。在WSGI里,
請求的處理過程被映射為對應用callable的調用(application(environ, start_response),知乎不支持inline代碼塊?);
請求信息被映射到environ字典中的相應鍵值,比如請求方法被映射到environ['REQUEST_METHOD'],請求的「相對路徑」被映射到environ['PATH_INFO'](過度簡化;暫且不提WSGI應用掛載點,框架層一般也不用關心這個,掛載WSGI應用一般是WSGI容器如gunicorn、uWSGI之類組件的工作);
發送響應頭的動作被映射到調用start_response(status, response_headers)(不考慮可選的第三個參數異常信息);
返回響應數據被映射到application返回iterable的動作。
於是響應便從Python返回到Web伺服器,再被發送回瀏覽器,瀏覽器將響應內容渲染,一個請求就完成啦。
有了這樣的感性認識,那麼我們作為Python Web開發框架的作者,要做的事情就是在WSGI規范的基礎之上,提供盡可能便捷的開發手段和盡可能低的框架開銷,也即我們的代碼將要工作在WSGI與業務邏輯的中間層。架構上,Web開發框架或多或少都遵循MVC的設計模式(Django管它叫MTV,其實差不多)。同時,由於框架位於中間件的位置,加上其鼓勵模塊化與代碼復用的性質,自然需要為常見的HTTP操作提供抽象。這里就可以展開一些話題:
請求路徑到view/controller的映射,請求參數的解析(routing,也叫路由)。
正則匹配的方案,比如Django內置了一個簡單的正則表達式解析組件,能解析一般常見語法的正則表達式,把capturing groups解析成位置參數,named capturing groups解析成關鍵字參數。
也有DSL的方案,比如Werkzeug的路由組件。
請求實體的處理。表單解析,配合Web伺服器進行上傳文件處理。
正常的urlencoded表單,JSON表單,text/plain數據,multi-part表單
multi-part附件,附件操作API
大文件上傳(這個一般會被前端伺服器保存在磁碟上的臨時文件里,比方說nginx就是這么實現的)。
會話。HTTP是無狀態(stateless)的,這個特點非常重要。如果沒有會話,你連續做幾個請求,卻沒有手段證明你們是同一個人/同一台機器(你完全可能是代理伺服器)。
存儲會話數據的會話後端(內存數據結構?文件?RDBMS?Redis?Memcache?)
安全機制(HMAC什麼的,可以參考beaker的secure cookie實現)
請求處理流程中的會話中間件(從Cookie中提取會話,從query string中提取會話,從自定義頭中提取會話,等等)
View/Controller界面。發揮你的創造力,用上你的工程經驗。
Function-based or Class-based views? 參考:Django, Bottle, web.py, Tornado等一票框架的做法
框架的可選機制與服務如何暴露,
裝飾器?(比如@login_required 這種額外要求)
回調?(能想到的只有Tornado和Twisted這種非同步框架做事情的方式,還有整個JS生態系統都是回調(不考慮Promise什麼的)的思路)
傳入應用(業務邏輯)層的數據結構如何設計?(HttpRequest等價物,名字可能記不清了)
響應數據結構如何設計?(HttpResponse等價物,同上)
資料庫操作封裝。Web應用基本都是數據為中心,這個組件非常有必要,也是撰寫可復用代碼必須的一環,畢竟光是框架抽象了,資料庫操作還是裸SQL什麼的,到時候生產環境一換(比如MySQL變pgsql)還不是傻眼。
關系型資料庫。一站式解決方案參考:Django ORM、SQLAlchemy;輕量級解決方案參考各資料庫Python綁定。
非關系資料庫。各資料庫Python綁定(pymongo, riak, redis-py之類),這個沒什麼可替代方案了,因為本來各種NoSQL庫都是適應某一特殊需求設計的,沒什麼互相替換的必要,那意味著重新進行技術選型。
7. python3用什麼方法向網頁提交數據
form_data = cgi.FieldStorage()athlete_name = form_data['para_name'].value將para_name修改為前端傳過來的參數名即可
8. 如何使用Python進行Web數據處理
如果你對這門語言還不太熟悉,你需要復習前面的內容。假定我們現在已經掌握了python語言的基本知識,現在讓我們來使用python語言做一些更有意義的工作。幾個星期以前,我收到來自web站點發送的一封e-mail,通知我的網路空間就要到期了,在他們刪除空間上的文件之前,我還有一個月的時間來備份文件。我在這一站點上只存儲了一些老照片,也不是十分重要,但我還是打算將它們保存下來。我並沒有一張張地保存,而是在網站上留言說要自己寫東西處理這些文件。於是我和網站就著手開發一個命令行程序,這個程序能夠處理web頁面,列印頁面中的圖片地址。在這篇文章結束之際,我們已經完成了通過HTTP打開和讀取HTML數據,定義函數,能接收多樣的用戶輸入,並且使用正規表達式來處理正文。 函數定義首先我們需要掌握python語言的一項基本特徵:函數。我們將實現一定功能的代碼模塊稱之為函數,並賦予該段代碼一個函數名。以後使用這段代碼時,不需要再輸入全部的代碼,而通過函數名直接調用這段代碼。python中函數的定義很簡單,如下:def hello(name):print "hello " + nameDef關鍵字後面的字元就是函數名,雙括弧中的字元就是函數參數——也就是函數的輸入值。調用函數也十分簡單,如下:>>> hello("world")hello world>>> hello("everyone")hello everyone在所有的程序設計中,使用函數是一個好主意。通過使用函數,我們不再需要拷貝和粘貼代碼,從而也減輕了程序的維護工作。同時,根據代碼的功能對程序代碼進行組合,使得程序更易懂和易維護。
9. Python web.py怎麼獲取非html頁面提交的POST數據
form_data = cgi.FieldStorage()
athlete_name = form_data['para_name'].value
將para_name修改為前端傳過來的參數名即可