2013-07-16 92 views
1

我在Win 7我的開發環境的設置是這樣的:蟒蛇Django項目和文件夾結構(從WAMP不同)

Django開發結構

Apache  -server-  C:\Program Files (x86)\Apache Software Foundation\Apache2.4 
PostgreSQL -database-  C:\Program Files\PostgreSQL\9.2 
Django  -framework-  C:\Python27\Lib\site-packages\django 
Python  -code-   C:\Python27 
Project  -root-   C:\mysite 
    |----------apps 
    |----------HTML 
    |----------CSS 
    |----------JavaScript 
    |----------assets 

我試圖保持這個非常簡單開始。有5個主目錄,每個都有不同的目的。所有代碼都駐留在項目文件夾中。

相比WAMP結構:

C:\WAMP 
    |----------C:\Apache 
    |----------C:\MySQL 
    |----------C:\PHP 
    |----------C:\www 

我喜歡的Apache,MySQL和PHP一切是如何居住在一個整潔的目錄。出於安全原因,我知道要將根項目OUTSIDE保留在Django的另一個目錄中。

  • Apache,PostgreSQL和Python在Django環境的所有地方都安裝好了嗎?
  • 我是否錯過了核心Django組件和/或目錄?
  • 部署和縮放會成爲一個問題嗎?

我希望這可以成爲開始Django網絡程序員的指南。

回答

1

我可以回答這個問題一個接一個:

  • Is if fine that Apache, PostgreSQL, and Python are installed all over the place in the Django environment?

    所有的地方聽起來有些不可思議,但肯定的是完全的罰款。

  • Did I miss a core Django component and/or directory?

    不,你不會錯過任何東西,Django的核心是在已經site-packages文件夾,您的網站的代碼是mysite,它可以位於任何地方你想要的。

  • Will deploying and scaling be a problem?

    沒有也不會與目前的結構問題。您將只部署您的mysite,另一個將單獨安裝。

一些與Django開發開始時,你應該熟悉:

  • 最有可能當你部署你的項目,這將是一個Linux服務器上,所以安裝,也許學習Linux?

  • virtualenv:很快你將不得不安裝Django,然後安裝一些外部軟件包來支持你的項目。 virtualenv可幫助您隔離您的工作環境。那麼當你開始使用python開發時,它就是「非官方」的。

  • virtualenvwrappervirtualenv

  • gitgithubbitbucket工作時,讓您的生活更輕鬆:如果你不知道git呢,你現在應該。

+0

「所有的地方」實際上是非常多的apache和postgresql被安裝在「程序文件目錄中更遠」 部署= mysite只聽起來不錯 –

+0

我已經測試了virtualenv(它的工作),但沒有virtualenvwrapper –

+0

最終將git。 –

1

Apache只是Web服務器,它用於提供文件,但是使網站不需要它。 Django帶有自己的開發服務器。請參閱:

python manage.py runserver 

阿帕奇當你正在開發PHP的網站,因爲你的電腦不知道如何編譯和解釋它是必需的。但是對於Django,您使用Python語言,並且如果您使用的是Django,則已經安裝它。

https://docs.djangoproject.com/en/1.5/intro/tutorial01/

以及它會使用Apache看看建立自己的服務器時間: https://docs.djangoproject.com/en/dev/howto/deployment/wsgi/modwsgi/

+0

我一直在使用「python manage.py runserver」。 何時需要部署=使用apache。 –

1

縮放將是Windows上的一個問題。在Windows上的Apache中的Python在一個進程中獲得64個線程。將這與GIL結合在一起,你將遇到擴展問題。

在Linux上的Python和Apache沒有這個問題。在Linux下,wsgi可以創建多個進程,每個進程都有多個線程,從而最大限度地減少GIL問題。

在Windows上的Apache WSGI在我看來不是一個可擴展的解決方案。

但是,您可以在那裏開發並轉移到Linux進行部署,我一直都在這樣做。

您將需要利用Apache Alias directive來爲您的所有靜態內容(如css,js,favicon.ico)提供服務。這釋放了python只處理需要邏輯的請求。

+0

「但是你可以在那裏開發並轉移到Linux部署,我一直這樣做。「完全是我的計劃。 –

+0

http://webpy.org/cookbook/staticfiles這是你的意思是使用Apache別名指令? –

+1

是的,那是我意思是由apache別名指令。我更新了對i的答案也包括官方apache文檔的鏈接。 – boatcoder