2010-01-30 37 views
3

我已經與XAMPP,WAMPP,MAMPP等合作過,並開始關注Django。Django:從XAMPP轉移到Django問題

我們所做的大部分工作都是以CMS爲導向的;雖然我們被告知不要使用第三方CMS(主要是因爲用戶發現它們很難使用以及其他問題),但我發現我可以使用Cake,CodeIgniter或其中一個代碼來編寫非常簡單的CMS其他PHP框架。

然而,我越來越沮喪,因爲我需要做的事情就是讓代碼運行起來,而且我被告知Django是一個很好的Python框架。它似乎也從reddit獲得了很多嗡嗡聲。

我對從XAMPP轉移到Django有一些疑慮和疑問。

1)安全

任何Web應用程序應該防守編碼。在過去的幾年中,我們看到了一種防範XSS,SQL注入,跨站點僞造,會話固定,會話高調,cookie高舉的運動。人們所需要的安全數量可能會很大。

Django做了什麼來防止/限制XSS,SQL注入,Javascript注入和santizing輸入;通常與保護PHP Web應用程序相關聯?這是我需要擔心的事情,還是Django開箱即可完成所有這些事情?

2)/ www/public文件夾中有什麼?

在手冊中,我讀到它說不要把manage.py或其他.py的東西放在主webroot中,所以這意味着我把所有東西放在webroot之外;那麼在那裏發生了什麼?

我把/ templates /目錄放在webroot裏面嗎?服務器如何知道要運行什麼?

3)我還可以在Django項目上使用.htaccess嗎?我對Apache很熟悉,經常用它來做路由,或者阻止不好的機器人,但會使用.htaccess還能工作嗎?

4)Cronjobs

不要cronjobs仍然使用Python/Django的項目的工作?

5)運行第三方的Perl /其他腳本

在PHP中您可以使用其他的庫,如curl庫,ffmpeg的,ImageMagik以及其他許多人;我仍然可以在Python/Django中使用這些庫嗎?

6)Admin屏幕

Django的給你一個徹頭徹尾的現成管理界面;這是僅用於開發目的還是可以投入使用?我擔心管理員屏幕的安全性。

7)集成了討論,Facebook,微博,OpenID的,驗證碼等

有在PHP庫,幫助整合DisQuss,Facebook,微博;但與這些和其他第三方應用程序進行整合相對容易嗎?

8)電子商務,SSL

是使用Django有許多電子商務網站?我見過很多CMS /博客類型的軟件,但沒有很多電子商務網站。我的意思是,購物卡,Protx/Paypal或Worldpay集成。

那是另一件事;有對Protx,貝寶,WorldPay的等沙箱PHP - 但是否有任何Django的?

9)它值得嗎?

是否值得從XAMPP背景轉移到Django?它真的會讓事情變得更快,還是隻是營銷宣傳?

謝謝。

回答

5
  1. 安全。 Django核心團隊非常關注安全問題,並且非常注意使SQL注入變得不可能。下一個版本1.2包括一個全新的保護庫。很顯然,在開發應用程序時仍需要注意這些,但Django會爲您提供很多幫助。

  2. /www/public:什麼都沒有。 Django不能通過普通的Apache服務機制工作:它掛接到(最好是)mod_wsgi,它需要一個單獨的文件,然後告訴它運行其餘的代碼。這些模板可以在任何地方使用,並且由Django設置文件指向,但不會由Apache直接提供。

  3. .htaccess:由於第二點你不需要它,因爲你沒有在文件系統層次結構中提供服務。最好的辦法是設置虛擬主機並以這種方式管理事物。

  4. 克朗工作:絕對。 Django只是Python,你可以通過cron輕鬆運行Python腳本。 Django允許你設置自定義的命令腳本來初始化ORM並讓你訪問任何你需要的東西。

  5. 圖書館:同樣,因爲Django是Python,你可以訪問大量的Python庫。對於curl,Python有urllib;對於ImageMagick,它有PIL;毫無疑問,也有ffmpeg的等價物。

  6. Admin:同樣,從一開始就一直認爲安全。對於是否應該僅將管理員用於專家用戶,或對其進行自定義並允許所有用戶進行訪問,意見不同;我使用它作爲自定義CMS接口的基礎,取得了很大的成功。

  7. Facebook等:是的,有所有這些庫。

  8. 電子商務:有一個整個電子商務項目,Satchmo,用Django編寫。存在圖書館來與所有支付提供者接口。

  9. 值得嗎?只有你可以告訴。我與從PHP遷移過來的衆多開發人員一起工作的經驗是,他們已經享受了這種體驗,並且變得更加富有成效。

3

關於SQL注入: Django使用ORM,它負責注入SQL注入保護,並且很少會爲您編寫自己的SQL。如果你這樣做,只是follow the instructions如何將參數傳遞給原始查詢和防止SQL注入。

關於django book about security有一整章應回答你所有的問題。

關於什麼進入/ www /:什麼是非代碼?關心的是不要把python代碼放在​​那裏。

On .htaccess:是的,它應該仍然有效(對於Daniel指出的任何非Django資源)。

關於cronjobs:你是什麼意思?

關於圖書館: Python--您將與Django一起使用的語言 - 豐富的庫可能提供您習慣的相同功能。這是一個關鍵點:您需要很好地學習Python以從Django獲得最大收益。

在管理界面上:從你的問題來看,這實際上是最能幫助你的東西。他們是定製的(一些限制之內),他們真的給員工(它不打算公開的用戶,但對於工作人員的用戶)CRUD的基礎知識,爲你的數據庫模型。這是一個節省時間。您可能需要編寫自己的先進功能模板,但對於大多數簡單的CRUD針對員工(通常是一個CMS的點),這是非常有用的,容易建立。

積分:檢查Pinax爲一組提供額外功能的應用程序。這裏有豐富多樣的整合解決方案。在這裏找到有關django + facebook和其他人的問題並不罕見。

電子商務:Check Satchmo out.

是否值得:現在,我有XAMPP沒有經驗。我知道我比Perl和PHP(以及Java)都更喜歡Python。我知道,作爲一個框架,Django使用起來更簡單,部署速度比以前使用的任何東西都快。

我的建議是陳舊的:去建立一個簡單的項目,做出自己的想法。你在有利位置,以決定是否Django是適合你的框架唯一的一個。

關於SO的舊問題討論了一些Django限制。 My answer to that可能對您也有幫助。

+0

感謝大家的幫助! – zardon 2010-02-01 10:48:28

+0

如何關閉論壇/主題? – zardon 2010-02-01 10:48:58

2

我最近轉向開發Django中的任何新項目,來自PHP背景。這是我對你的問題的看法。

1)安全送到模板

字符串默認情況下,這需要的大部分是保健逃脫。由於您使用的是ORM,因此除非您出於某種原因構建原始查詢,否則SQL注入不應成爲問題。

2)/ www/public文件夾中有什麼?

Django不像典型的PHP設置那樣使用URL的文件層次結構。服務器知道你的urls.py和settings.py指針指向模板文件夾。

3)我還可以在Django項目上使用.htaccess嗎?我對Apache很熟悉,經常用它來做路由,或者阻止不好的機器人,但會使用.htaccess還能工作嗎?

如上所述,它對靜態內容的作用相同。就我所知,對於動態頁面,您希望爲要阻止的客戶端實現其他形式的身份驗證或重定向。

4)Cronjobs

沒有理由爲什麼你不能使用cron不管什麼,因爲你還是有一個正常的Linux系統。

5)運行第三方的Perl /其他腳本

你需要使用這些庫的Python版本,當然。例如 FFMpeg PythonMagick

我取代了我的大部分需要捲翹與內置的urllib和urrlib2庫,但也有PyCurl如果你需要它。

6)Admin屏幕

管理員屏幕旨在通過自己的管理員使用,即現場工作人員。這樣做可能是可能的,但它不應該是你建立你面向公衆的項目的腳手架。

7)集成了討論,Facebook,微博,OpenID的,驗證碼等

有很多人在那裏使用Python和Django的,我還沒有發現庫中的任何問題。根據我的經驗,對PHP之類的東西的支持有點少,但是通常情況下會有更高的質量。

8)電子商務,SSL

我沒試過支付整合,所以我不能說。不知道其他網站,但貝寶沙箱是由貝寶運行,不是嗎?我認爲這與您在服務器上使用的內容無關,所以請確保您可以像平常一樣訪問它。

9)它值得嗎?是否值得從XAMPP背景轉移到Django?它真的會讓事情變得更快,還是隻是營銷宣傳?

我搬到了Django,因爲Python確實比PHP更引人注目。它會使事情變得更快嗎?我不確定Django與PHP MVC框架在這方面的優勢。沒有魔法彈。

你必須記住,你不只是在學習一個新的框架,而且是一種新的語言。如果你以前從未使用過Python,那麼將會有一些學習曲線。但是我發現Python和Django都相當容易學習。該語言的乾淨設計非常棒,Django的設計也非常好。我確實認爲這會提高我的生產力。我已經找到了關於我在Django中需要做的大部分內容的片段或文章,因此我已經在學習,因此適配非常簡單。