Django 1.6 在Windows平台下的配置

前言

最近两天研究了下Django1.6在Windows平台中的配置安装,服务器采用Apache。期间遇到过许多新手所遇到的各种问题,也算是一种宝贵经历,问题原因主要是关于新版Django静态文件的配置问题,尤其是media和static两种文件的混淆。网上很多教程都是基于比较老的版本所写,导致配置思路有差异,最有价值的内容当属Django官网的参考资料,值得细读。

配置环境

Python:2.7.6

Apache: 2.2

Django: 1.6

OS: windows 7

目录

Python 安装


Python软件安装

Python官网下载相应Win32版本的即可,我的是2.7.6。关于Python版本的选择在网上有很多介绍,因为3.X以上版本很多模块不支持,所以最好选择2.X安装。下载完后直接点击安装,至于安装路径可选择默认也可自定义。建议是最好不要放在类似Program Files的文件夹中,直接放在C盘或其它盘根目录下。因为我在用Mingw32创建Django工程时,安装在此路径下的python会出现C:\program: bad interpreter错误,也可能是自己未配置好的原因。软件安装好后将python安装目录添加到环境变量PATH

Python包安装

由于安装Django我使用的是Pip安装,所以在此先安装Pip包,我一般选择国内的安装源,不仅速度快且稳定,上面基本上囊括了PyPi的所有包,很方便。找到PIP相应的目录选择相应的版本,点击下载即可,然后将目录解压,进入目录执行如下命令安装。

python setup.py install

安装好后,需要将[python安装目录]/Scripts路径添加到环境变量,以便在任何地方使用。

Apache安装

目前用得最广的版本是2.2,直接到Apache官网下载即可。关于是否安装Apache还是Nginx的问题,网上有相关介绍,各有优势,不在此赘述。

Django 安装


Django下载

进入命令行,可以是Windows CMD, 我用的是Mingw32,执行如下命令:

$ pip install django -i http://e.pypi.python.org/simple/

命令中指定下载安装源。安装好后会在Python安装目录中的Lib/Site-packages/路径下生成Django目录,同时会为在Python安装目录下的Scripts/目录中产生django-admin.py文件,此文件就是我们需要用来创建Django工程和应用的主文件,需要详细了解。安装好后需要测试是否安装成功,进入Python Shell环境,执行import django命令,如果未出现错误说明Django安装成功。

Mod_WSGI配置

下载mod_wsgi.so文件,并配置mod_wsgi模块, 找到Apache安装目录下Conf/httpd.conf,在LoadModule处添加如下语句:

LoadModule wsgi_module modules/mod_wsgi.so

Django工程创建


创建工程

Django工程的创建利用django-admin.py进行,在相应的目录执行如下命令即可创建一个Django工程:

django-admin.py startproject zend

其中,zend是工程名。工程创建好之后,架构如下所示:

zend  #项目名称
|
--zend #项目子文件夹
|
----__init__.py #项目初始化文件
|
----settings.py #项目配置文件
|
----urls.py #项目链接管理文件
|
----wsgi.py #wsgi配置文件
|
--manage.py #项目管理文件,执行各种操作,如内置服务器启动,数据库表管理等

在下面将以此工程进行介绍。

Settings.py设置

此文件很关键,设置不对无法访问Django项目,设置涉及几个方面,主要字段有:

INSTALLED_APPS  #关于APP方面的设置,如自己创建的APP
DATABASES #数据库方面设置,mysql,sqlite3,oracle等
STATICFILES_DIR #静态文件目录设置
TEMPLATE_DIRS #模板文件目录设置

INSTALLED_APPS字段主要涉及所创建的APP,其中最为关键的一点是关于django.contrib.staticfiles的设置,此处需添加上,这一步很关键。

DATABASES字段,我设置的是Mysql,所以最后配置如下:

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',#mysql engine
'NAME':'zend', #database name
'USER':'root', #database user
'PASSWORD':'xxx', #database password
'HOST':'', #主机名
'PORT':'', #访问端口
}
}

在配置之前,需要创建数据库zend

STATICFILES_DIR字段,主要用来配置静态文件目录,当项目运行时,通过此目录找到相应的静态配置文件,如css,js,images等。配置如下:

STATIC_URL = '/static/'
STATICFILES_DIRS=(os.path.join(BASE_DIR,"static"),)

TEMPLATE_DIRS字段,主要用来配置模板文件目录。配置如下: TEMPLATE_DIRS=( os.path.join(BASE_DIR,'templates'),)

配置STATICFILES_DIRS和TEMPLATE_DIRS需要在zend工程目录下创建static和templates文件夹,在apache配置时还提及media,所以同时创建media文件夹。同时最关键的是static文件夹的内容。如果在Apache中指定的static目录是工程目录下的static目录,则执行如下命令后会把site-packages/django/contrib/admin/static/下的内容拷贝到工程目录中的static文件夹中:

python manage.py collectstatic

我是按照此方法来设置静态文件的。所以下面Apache的配置也是根据此目录来设置。

wsgi.py设置

此文件是关于创建工程后的解析设置,文件内容如下:

import os,sys
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "zend.settings")
sys.path.append(r'D:/www/django/zend') #工程路径
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

Apache配置

此步骤是花时间比较多的步骤,一开始查阅网上资料说的都很乱,有的是Django版本不对,有的是Apache配置本身不对。最后静下心查看官网的关于Apache的配置文章才有所领悟。按照此文章的介绍,我整理了下我的配置思路,我主要是用虚拟目录方式来配置,区别就是我把WSGIScriptAlias语句放在了虚拟目录配置文件httpd-vhost.conf中,而常规的话是放在httpd.conf中。

首先,把httpd.conf文件中的Include conf/extra/httpd-vhosts.conf去掉注释,以便在虚拟目录配置文件中进行Django配置。

其次,打开conf/extra/httpd-vhosts.conf文件,进行如下配置:

<VirtualHost *:80>
DocumentRoot "D:/www/django/zend"
ServerName localhost
AliasMatch ^/([^/]*\.css) "d:/www/django/zend/static/styles/$1
Alias /media/ "d:/www/django/zend/media/"
Alias /static/ "d:/www/django/zend/static/"
<Directory "D:/www/django/zend/static">
Order deny,allow
Allow from all
</Directory>
<Directory "D:/www/django/zend/media">
Order deny,allow
Allow from all
</Directory> WSGIScriptAlias / "d:/www/django/zend/zend/wsgi.py" <Directory "D:/www/django/zend/zend">
<Files wsgi.py>
Order Deny,Allow
Allow from all
</Files>
</Directory>
</VirtualHost>

测试工程

如果用Django内置服务器的话,进入工程目录,直接执行以下命令:

python manage.py runserver [port] #port可省略,默认为8000

在浏览器中输入localhost即可,如果出现It works等字眼,说明django配置成功。

如果用Apache的话,先启动apahce服务,然后输入localhost如果出现上述字眼,表明apache配置成功。

总结

此文档主要是为记录安装过程所写,以备后忘,在配置过程中,遇到很多问题,从网上也找到一些资料参考,收获还是很多的。

Django 1.6在Windows平台下的配置的更多相关文章

  1. 如何在Windows平台下安装配置Memcached

    Memcached是一个自由开源的,高性能,分布式内存对象缓存系统. Memcached是以LiveJournal旗下Danga Interactive公司的Brad Fitzpatric为首开发的一 ...

  2. OpenCV CMake VSCode Windows 平台下运行配置及其解决方案

    前言 最近在搞 计算机图形学相关的东西,有个 demo 用到了 opencv,找了 google 一圈,发现国内都没有比较好的配置和解决的办法,要不就是几年前的教程,最近正好踩坑完,其中经历了自己编译 ...

  3. laravel + php cgi + nginx在windows平台下的配置

    1.d:\xampp\php\php-cgi.exe -b 127.0.0.1:9000 -c d:\xampp\php\php.ini 2.nginx conf配置如下: #user nobody; ...

  4. Windows平台下利用APM来做负载均衡方案 - 负载均衡(下)

    概述 我们在上一篇Windows平台分布式架构实践 - 负载均衡中讨论了Windows平台下通过NLB(Network Load Balancer) 来实现网站的负载均衡,并且通过压力测试演示了它的效 ...

  5. windows平台下基于VisualStudio的Clang安装和配置

    LLVM 是一个开源的编译器架构,它已经被成功应用到多个应用领域.Clang是 LLVM 的一个编译器前端,它目前支持 C, C++, Objective-C 以及 Objective-C++ 等编程 ...

  6. Windows平台下的读写锁

    Windows平台下的读写锁简单介绍Windows平台下的读写锁以及实现.背景介绍Windows在Vista 和 Server2008以后才开始提供读写锁API,即SRW系列函数(Initialize ...

  7. [转]Windows平台下安装Hadoop

    1.安装JDK1.6或更高版本 官网下载JDK,安装时注意,最好不要安装到带有空格的路径名下,例如:Programe Files,否则在配置Hadoop的配置文件时会找不到JDK(按相关说法,配置文件 ...

  8. MongoDB学习总结(一) —— Windows平台下安装

    > 基本概念 MongoDB是一个基于分布式文件存储的开源数据库系统,皆在为WEB应用提供可扩展的高性能数据存储解决方案.MongoDB将数据存储为一个文档,数据结构由键值key=>val ...

  9. windows平台下基于QT和OpenCV搭建图像处理平台

        在之前的博客中,已经分别比较详细地阐述了"windows平台下基于VS和OpenCV"以及"Linux平台下基于QT和OpenCV"搭建图像处理框架,并 ...

随机推荐

  1. ACE线程管理机制-线程的创建与管理

    转载于:http://www.cnblogs.com/TianFang/archive/2006/12/04/581369.html 有过在不同的操作系统下用c++进行过多线程编程的朋友对那些线程处理 ...

  2. eclipse的最新版本luna的中建立svn和maven

    http://blog.csdn.net/notillusion/article/details/40950185

  3. 不可不知的robots.txt文件

    robots.txt基本介绍 robots.txt是一个纯文本文件,在这个文件中网站管理者可以声明该网站中不想被robots访问的部分,或者指定搜索引擎只收录指定的内容. 当一个搜索机器人(有的叫搜索 ...

  4. Rsync+inotify自动同步数据

    一.简介 随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync在高端业务系统中也逐渐暴露出了很多不足. 首先,rsync在同步数据时,需要扫描所有文件后进行比对,进行差量传 ...

  5. JavaScript实现35选7并记录历史状态

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAL4AAABQCAYAAACnOs9vAAAJy0lEQVR4nO2dbWwUxxnH/2c5SElQSl ...

  6. [洛谷P2571] [SCOI2010]传送带

    题目描述 在一个2维平面上有两条传送带,每一条传送带可以看成是一条线段.两条传送带分别为线段AB和线段CD.lxhgww在AB上的移动速度为P,在CD上的移动速度为Q,在平面上的移动速度R.现在lxh ...

  7. [Luogu 2580] 于是他错误的点名开始了

    [Luogu 2580] 于是他错误的点名开始了 不用好奇我为什么突然发水题题解- 突然觉得自己当年的幼儿园码风太幼稚,就试图把数据结构什么的用指针重写一遍- 想当年因为空间开太大而全 RE,调了一下 ...

  8. Could not load file or assembly 'Microsoft.ReportViewer.Common, Version=11.0.0.0 异常处理

    在本机开发asp.net .rdlc报表后,部署到本地没有问题. 当把网站发布后部署在IIS上,新电脑上(只安装了.net framwork4.5),提示如下错误: “Could not load f ...

  9. HDU5852 Intersection is not allowed!

    There are K pieces on the chessboard. The size of the chessboard is N*N. The pieces are initially pl ...

  10. Spring归纳小结(山东数漫江湖)

    前言 如果说有什么框架是Java程序员必然会学习.使用到的,那么Spring肯定是其中之一.本篇博客,将根据博主在日常工作中对Spring的使用做一个系统的归纳小结. Spring的一些概念和思想 S ...