1

我在 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 Web 程序员入门的指南。

4

3 回答 3

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/ 。

于 2013-07-16T22:36:00.360 回答
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,你现在应该知道。

于 2013-07-16T22:38:16.153 回答
1

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

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

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

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

您将希望利用Apache Alias指令来提供所有静态内容,例如 css、js、favicon.ico。这让 python 可以只处理需要逻辑的请求。

于 2013-07-24T18:20:43.043 回答