我在 Win 7 上设置了我的开发环境,如下所示:
Django 开发结构
Apache - 服务器 - C:\Program Files (x86)\Apache Software Foundation\Apache2.4
PostgreSQL - 数据库 - C:\Program Files\PostgreSQL\9.2
Django - 框架 - C:\Python27\Lib\site-packages\django
Python - 代码 - C:\Python27
项目 - 根目录 - C:\mysite
|---------- 应用
|---------- HTML
|---------- CSS
|---------- JavaScript
|---------- 资源
我试图让它一开始尽可能简单。有 5 个主要目录,每个目录都有一个明确的目的。所有代码都位于项目文件夹中。
与 WAMP 结构相比:
C:\WAMP
|----------C:\Apache
|----------C:\MySQL
|----------C:\PHP
|----------C:\www
我喜欢 Apache、MySQL 和 PHP 都驻留在一个整洁的目录中。我知道出于安全原因,在 Django 中将根项目放在另一个目录之外。
Apache、PostgreSQL 和 Python 在 Django 环境中的各个地方安装是否没问题?
我是否遗漏了 Django 核心组件和/或目录?
部署和扩展会有问题吗?
我希望它成为 Django 网络程序员入门指南。
2、解决方案
回答 1:
Apache 只是一个网络服务器,用于提供文件,但要建立网站,您不一定需要它。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/。
回答 2:
我可以逐一回答这个问题:
Apache、PostgreSQL 和 Python 在 Django 环境中的各个地方安装是否没问题?
到处都是听起来很奇怪,但它是完全可以的。
我是否遗漏了 Django 核心组件和/或目录?
不,您什么也没有遗漏,Django 核心已经位于 site-packages 文件夹中,您的站点代码是 mysite,它可以位于您想要的任何位置。
部署和扩展会有问题吗?
不会,在当前结构下不会有问题。您只会部署您的 mysite,其他将被分别安装。
在开始 Django 开发时您应该熟悉的一些内容:
当您部署项目时,很可能它会在 Linux 服务器上,所以可能需要安装并学习 Linux?
virtualenv:很快您就需要安装 Django,然后安装一堆外部包来支持您的项目。virtualenv 帮助您隔离您的工作环境。好,当您开始 python 开发时,它“非官方”地必须具备。
virtualenvwrapper 让您在使用 virtualenv 时更轻松
git 和 github 或 bitbucket:如果您还不知道 git,您现在应该知道。
回答 3:
在 windows 上扩展将是一个问题。一个进程中的 Python 在 Apache 上最多可以拥有 64 个线程。将此与 GIL 结合使用,您将遇到扩展问题。
Linux 上的 Python 和 Apache 没有同样的问题。在 Linux 下,wsgi 可以创建具有多个线程的多个进程,从而最大限度地减少 GIL 问题。
我认为 Apache 上的 WSGI 在 windows 上不是可扩展的解决方案。
但是,您可以在那里开发并在部署时迁移到 linux,我一直这样做。
您需要利用 Apache Alias 指令来提供所有静态内容,例如 css、js、favicon.ico。这使 Python 只处理需要逻辑的请求。