① 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視頻教程。
② 如何用python和web.py搭建一個網站
一、使用工具:python、web.py
二、搭建步驟:
1、 環境搭建。
安裝python2.7.10,注意要把python路徑加入系統環境變數。版本不能低於2.7.9,但不能用3.0以上,web.py支持不好。安裝web.py, 官方網下載來裝就行,記得是解壓後進去:python setup.py install,安裝wingIDE,這個是最好用的python編輯器,裝apache並配置python-wscgi,
2. 開發。
建立資料庫建議寫個生成腳本,比如createDataBase.py,有改動重新運行一遍,不要試用ide去建。
三、注意事項:注意要把python路徑加入系統環境變數。版本不能低於2.7.9,但不能用3.0以上,web.py支持不好。
③ 如何用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)有時間了可以把演算法與數據結構補起來
④ python web開發需要學哪些東西
什麼是web開發呢,其實就是開發一個網站了。那開發網站需要用到哪些知識呢
1、python基礎,因為用python開發的,所以python指定要會,最起碼你也得會條件判斷,循環,函數,類這些知識;
2、html、css的基礎知識,因為要開發網站,網頁都html和css寫的,最起碼這些知識你得會,就算不會寫前端,開發不出來特別漂亮的頁面,網站,最起碼要能看懂html標簽是;
3、資料庫基礎知識,因為開發一個網站的話,數據存在哪裡,就是在資料庫里,那你最起碼要會資料庫的增刪改查吧,要不然怎麼存數據,取數據呢
上面這些知識會的話,就基本上可以了,可以開發一個簡單的小站就沒有問題了,如果想開發比較大型的網站,業務邏輯比較復雜的,那就得用到其他的知識了,比如說redis、MQ等等。
開發前的准備:
1、安裝好 python3.5版本
2、安裝好pycharm,是咱們的開發工具
3、安裝好django,版本1.9,使用pip install django==1.9命令安裝即可
4、安裝好navicat或者其他操作資料庫的可視化工具,因為咱們要用到資料庫,要看資料庫、改數據
前面咱們安裝了django,django是一個python開發的web框架,大而全,幾乎你用到的方法,它全都有,它裡面已經實現了我剛才說的所有的功能,咱們只需要用把它拿過來用就可以了。當然python還有很多web開發框架,比如說web.py、flask、tornado、bottle等等,他們在原理上和django一樣,但是他們的功能都沒有django多,django也是社區最大,活躍用戶最多的一個框架。
⑤ 如何用python做web開發 django環境配置
下載
python-2.7.2.msi
Django-1.3.1.tar.gz
Django暫時只支持python
2.4
~
2.7,
在Django-1.3.1\docs\intro\install.txt中有說明:
Being
a
Python
Web
framework,
Django
requires
Python.
It
works
with
any
Python
version
from
2.4
to
2.7
(e
to
backwards
incompatibilities
in
Python
3.0,
Django
does
not
currently
work
with
Python
3.0;
安裝python-2.7.2,並添加環境變數
D:\Python27;D:\Python27\Scripts;
命令行進入Django-1.3.1目錄,
安裝django
python
setup.py
install
Django提供了tutorial
Django-1.3.1\docs\intro
新建站點
E:\python>django-admin.py
startproject
mysite
啟動django自帶的web伺服器
E:\python>cd
mysite
E:\python\mysite>manage.py
runserver
Validating
models...
0
errors
found
Django
version
1.3.1,
using
settings
'mysite.settings'
Development
server
is
running
at
http://127.0.0.1:8000/
Quit
the
server
with
CTRL-BREAK.
在瀏覽器中輸入
http://127.0.0.1:8000/
瀏覽頁面
ps:
在windows7中按上述步驟配置好後,出現下列情況
D:\work\python>django-admin.py
startproject
mysite
Usage:
django-admin.py
subcommand
[options]
[args]
...
很顯然django-admin.py不參識別startproject命令,其它命令也不能識別。不過,另一種方式卻可以
D:\Python27\Scripts>python
django-admin.py
startproject
mysite
這說明django-admin.py
後面的參數不能傳遞進去,可以通過修改注冊表實現。
輸入regedit,
進入
HKEY_CLASSES_ROOT\py_auto_file\shell\open\command
,
"C:\Python26\python.exe"
"%1"
change
it
to
"C:\Python26\python.exe"
"%1"
%*
成功解決了
⑥ 用Python進行web開發需要學習什麼
1 寫在前面
在沒有接觸互聯網這個行業的時候,我就一直很好奇網站是怎麼構建的。現在雖然從事互聯網相關的工作,但是也一直沒有接觸過Web開發之類的東西,但是興趣終歸還是要有的,而且是需要自己動手去實踐的。Web開發的途徑有好多種,比如傳統的.Net,還有很火爆的Java。
Python作為一種靈活好學的腳本語言,已經越來越受程序員的歡迎和熱捧,甚至成為程序員的必備技能。Django是Python的Web開放框架,好多人說學習Python就是在學Django,從這也可以看出Django的強大。博主也是剛剛接觸Django,純屬個人興趣愛好,望與廣大博友共同學習和討論。
2 什麼是Web開發?
在介紹什麼是Web開發之前,先簡單提及一下大家熟悉的WWW。WWW(World Wide Web)簡稱萬維網。通俗地說,WWW是一套技術規范,它裡麵包含很多技術和協議,例如html技術、url、http協議等。人們通過這套技術規范,可以對Internet網路上主機的資源進行描述,進而可以通過一個WWW的客戶端訪問這些資源。常用的WWW客戶端有IE、Foxfire等瀏覽器。由於WWW技術的出現,人們可以在世界上的任何一個角落,通過一個瀏覽器訪問網際網路上任何一台遠程計算機上的資源,或與遠程計算機進行通訊。20世紀由於WWW技術的出現,因而誕生了「地球村」的概念。
對於python初學者來說,能找到一個好老師學習格外重要,這能決定你是不是可以做出好的項目,在python開發的路上越走越輕松,如果現在的你缺乏學習經驗,找不到老師指導你學習,可以加企 鵝扣-Q前面112再加上中間的983以及最後四位數4903,連在一起就可以了。
而Web就是用來表示Internet主機上供外界訪問的資源的。在英語中web即表示網頁的意思,網頁也統稱為web資源。Internet上供外界訪問的Web資源主要分為如下兩類: 靜態web資源:指web頁面中供人們瀏覽的數據始終是不變的,例如,html頁面;
動態web資源:指web頁面中供人們瀏覽的數據是由程序產生的,不同時間點訪問web頁面看到的內容各不相同。
微軟對Web開發的定義:Web開發是一個指代網頁或網站編寫過程的廣義術語。這些頁面可能是類似於文檔的簡單文本和圖形。頁面也可以是互動式的,或顯示變化的信息。編寫互動式伺服器頁面略微復雜一些,但卻可以實現更豐富的網站。如今的大多數頁面都是互動式的,並提供了購物車、動態可視化甚至復雜的社交網路等現代在線服務。
通俗的說,web開發就是我們說的做網站。它分為網頁部分和邏輯部分也就是我們說的前台與後台,前台負責與用戶的交互,顯示數據。用到HTML顯示數據,CSS控制樣式,JS編寫復雜交互。後台編寫處理這些邏輯的程序,可以用C#,java,php等語言。
⑦ 如何開發一個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庫都是適應某一特殊需求設計的,沒什麼互相替換的必要,那意味著重新進行技術選型。
未完待續
接下來的內容:
主要響應AJAX/API請求的框架設計思路
Python下實時Web框架思路
框架設計哲學
框架性能分析方法
本人才疏學淺,大項目沒做過,小項目也沒怎麼起飛過,請各位閱讀我的觀點時務必留心。讀到最後非常感謝。