python django项目和文件夹结构(与WAMP不同)

时间:2013-07-16 21:44:02

标签: python django directory-structure project-structure

我在Win 7上的开发环境设置如下:

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的另一个目录中。

  • 在Django环境中安装Apache,PostgreSQL和Python是不是很好?
  • 我是否错过了核心Django组件和/或目录?
  • 部署和扩展是一个问题吗?

我希望这是开始Django网络程序员的准则。

3 个答案:

答案 0 :(得分:1)

Apache只是Web服务器,它用于提供文件,但要创建一个您不需要的网站。 Django自带开发服务器。见:

python manage.py runserver

在开发PHP网站时需要Apache,因为您的计算机不知道如何编译和解释它。但是对于Django,你使用Python语言,如果你使用Django,你已经安装了它。

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

使用Apache设置自己的服务器的时间是: https://docs.djangoproject.com/en/dev/howto/deployment/wsgi/modwsgi/

答案 1 :(得分: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开发时,它必须是“非官方的”。

  • virtualenvwrapper在使用virtualenv

  • 时让您的生活更轻松
  • gitgithubbitbucket:如果您还不知道git,那么现在应该。

答案 2 :(得分:1)

缩放将是Windows上的一个问题。 Windows上的Apache中的Python在一个进程中获得64个线程。将此与GIL相结合,您将遇到缩放问题。

Linux上的Python和Apache没有同样的问题。在Linux下,wsgi可以创建多个进程,每个进程都有多个线程,从而最大限度地减少了GIL问题。

在我看来,Apache on Windows上的WSGI不是一个可扩展的解决方案。

但是你可以在那里开发并转移到linux进行部署,我会一直这样做。

您需要利用Apache Alias directive来提供所有静态内容,例如css,js,favicon.ico。这使得python只能处理需要逻辑的请求。