我剛開始使用Python,我想知道如何在不需要框架的情況下編寫Web應用程序。我是一名體驗PHP開發人員,但我有嘗試使用Python的衝動,我通常喜歡在沒有框架限制的情況下從頭開始編寫代碼。在沒有框架的python中編寫web應用程序?
回答
WSGI是Web服務器接口的Python標準。如果你想創建你自己的框架或者在沒有框架的情況下運行,你應該研究一下。具體而言,我發現Ian Bicking's DIY Framework文章有幫助。
順便說一句,我傾向於認爲框架是有用的,並親自使用Django,像塔的工作方式,並已在過去使用Bottle爲原型—你可能想看看瓶子,如果你想要一個留出您的方式microframework。
謝謝,我會研究。人們在這裏回覆得非常快,我喜歡這個地方:D – 2010-02-16 20:19:29
您將不得不尋找類似CGI或FastCGI,它提供了一個API來與Web服務器進行通信。
Google App Engine使您可以編寫簡單的應用程序,甚至提供一個本地網絡服務器,您可以嘗試一下。
我認爲App Engine是一個很好的建議。 'webapp'框架非常簡單,它的容量就像在商品託管上的普通舊PHP一樣容易起來和運行。 – 2010-02-16 20:27:29
我正在尋找App Engine,看起來很有趣。 – 2010-02-16 20:38:51
其中最輕的框架是mod_wsgi
。更少的工作將是大量的工作,解析HTTP請求來查找標題和URI的方法,解析GET或POST查詢/數據關聯,處理文件上傳,cookies等。
mod_wsgi將會只處理請求解析和框架結果的基礎知識。
會話,餅乾,使用您的響應頁面的模板生成器將是一個驚人的工作量。
一旦你開始了這條道路,你可能會發現一點點的框架支持有很長的路要走。
我喜歡挑戰:D – 2010-02-16 20:39:19
嗯,mod_wsgi在技術上並不是一個框架,它是一個WSGI適配器。它甚至不處理HTTP請求解析,就像Apache爲它做的那樣。 – 2010-02-17 00:00:58
@Graham Dumpleton:「技術上是一個框架」?技術定義是什麼? – 2010-02-17 02:21:19
對於一個PHP程序員,我認爲mod_python是一個很好的開始沒有任何框架的方法。它可以直接用作Apache 2模塊。你可以有代碼標記(如在PHP <? ?>
),甚至有條件的HTML輸出(HTML中的if語句):
<%
if x == y:
# begin
%>
... some html ...
<%
# end
%>
(摘自簡化例子onlamp.com的Python Server Pages tutorial)
看起來不錯,但我也是反apache的。對Nginx有什麼要求嗎? – 2010-02-16 20:40:46
似乎有一個用於nginx的wsgi模塊:http://wiki.nginx.org/NginxNgxWSGIModule – AndiDog 2010-02-16 20:52:58
你應該嘗試web.py,它提供了最少的功能,不會妨礙您的工作。
答案是「不」。使用框架使您的代碼更具可維護性,可伸縮性,可讀性,可測試性和模塊化。
就像我上面所說的,我喜歡寫我自己的東西,當我寫它們時,我確保我遵循所有這些事情,在編程方面我是一個完美主義者(一個嚴重的優化怪胎,它是一種痛苦)。我爲我的大部分代碼保留了一個庫,所以當我需要做一些事情時,我只需將它們粘在一起,然後我就得到了一個個人迷你框架,它只具有我需要的功能,但如果需要,仍可以添加到以後的功能中。 – 2010-02-17 02:20:14
正確的NIH解決方案(如果有這樣的事情)將會寫*框架*,而不是爲了避免框架。能夠引入合理的抽象(即使用框架)使得編寫出色的應用程序變得可行。我不知道這意味着什麼是「一個嚴重的優化怪胎,它是一個痛苦」,但它聽起來並不像我想要聘用的任何人 - 花時間優化代碼通常是不經濟和浪費的。透明度,程序員時間,可維護性和可測試性通常都值得在速度和空間上進行優化。 – 2010-02-17 02:29:34
這裏的人們喜歡框架。我注意到的一個缺點是Python缺乏Sessions的易用模塊作爲內置的庫,儘管它可以在PHP中使用,而在Perl中使用CGI :: Session。
你最終會做:
import cgi # if you want to work with forms and such
import cgitb; cgitb.enable() # to barf up errors to the web
print 'Content-type: text/html\n\n' # to start off any HTML.
你將不得不寫的東西會在你自己。
我想我只是不會使用Python進行Web開發,我只是將它用作通用編程語言。要回到PHP,也許給Rails另一個嘗試(我知道它是一個框架..它是我唯一真正喜歡的,它只是Ruby語法非常討厭)。 – 2010-02-17 17:09:48
- 1. Web應用程序框架?
- 2. Web應用程序框架
- 3. 沒有框架的複合web應用程序
- 4. 在沒有Django或任何框架的python中編寫webapps
- 5. 有沒有用Python編寫的好構建框架?
- 6. 在Spring-Hibernate Web應用程序中編寫Java應用程序
- 7. Rx框架在Web應用程序中有任何用處嗎?
- 8. Ajax的Web應用程序框架
- 9. Web應用程序的JQuery框架
- 10. 構建Web應用程序的框架
- 11. 我如何測試用Play框架編寫的web應用程序?
- 12. 可以在沒有Spring框架的Spring應用程序中運行POJO Web服務應用程序
- 13. JRuby on rails框架Web應用程序
- 14. 哪個Web應用程序框架?
- 15. java web應用程序ui框架
- 16. MVC J2EE web應用程序無框架
- 17. 如何部署用Python編寫的Web應用程序?
- 18. Web應用程序編碼的最佳JavaEE框架是什麼?
- 19. 哪個Web框架最適合私有云Web應用程序?
- 20. 使用Nodejs編寫Web應用程序
- 21. 可能在沒有框架的情況下創建Web應用程序?
- 22. 如何使用selenium web驅動程序和testNG開始爲Web應用程序編寫測試框架?
- 23. 編寫遊戲的構建腳本!框架應用程序
- 24. 哪些多平臺GUI框架可以用來編寫Python應用程序?
- 25. 純Python Web應用程序框架兼容2.4.3
- 26. 什麼Web應用程序框架應該用於Web圖庫?
- 27. 的Web應用程序框架調用命令行程序
- 28. .NET Winforms有沒有好的MVC/MVP框架或其他應用程序框架?
- 29. 在Web應用程序中使用Microsoft Unity 2.0框架
- 30. 在其他Web應用程序框架中使用Nashorn
「框架的限制」。你爲什麼說框架是一個限制? PHP是一個巨大而複雜的框架,可以幫助您避免編寫大量繁瑣的代碼。爲什麼放棄這種水平的權力?框架有什麼問題PHP的確定,但另一個非PHP框架不正常? – 2010-02-16 20:17:30
PHP並不是一個真正的框架,它是一種解釋型語言,但不是框架。對我來說,大多數情況下框架是一個限制,因爲我必須做框架告訴我必須做的事情。例如,在CakePHP中,你必須命名控制器,視圖和模型一個特定的名字,你不需要這樣做,但是如果你不這樣做,那麼事情就不會「神奇地」聯繫在一起,那麼關鍵是什麼?使用框架?框架充滿了我不需要讓它們變慢的功能。我更喜歡寫我自己的東西(我保存了我所有代碼的庫),我是這樣的怪胎:D – 2010-02-17 02:16:17
@Dr Hydralisk:PHP可以獨立運行。但是,當嵌入到Apache中時,它絕對是一個框架。嘗試從頭開始編寫自己的mod_php版本,並查看PHP爲您自動完成的所有工作。使用框架的一點是它可以讓你擺脫細節。 PHP將您從大量的HTTP處理細節中解放出來。許多Python框架將您從細節中解放出來。框架是「充滿了功能」?真?你能否更新你的問題來明確你不喜歡的功能? – 2010-02-17 02:24:37