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. ioctl函数用法小记

    By francis_hao    Aug 27,2017   UNPV1对ioctl有算是比较详细的介绍,但是,这些request和后面的数据类型是从哪里来的,以及参数具体该如何使用呢?本文尝试在不 ...

  2. 二叉树中和为某一值得路径 java实现

    本题来自<剑指offer> 路径为从根节点到叶节点一条路径,路径经过的各节点数值之和等于某一给定数值,则打印路径上的节点 因为需要打印满足条件的路径节点信息和各节点之和,需要栈记录经过的节 ...

  3. boost文件锁的使用

    boost中可以用boost::interprocess::file_lock类对文件进行加锁和解锁操作. #include <fstream> #include <iostream ...

  4. java后台svg转成png

    1.替换img地址 /** * 替换img地址 * @param str -- 前台svg字符串 * @return */ private String transferImgPath(HttpSer ...

  5. Difference between List View and DataGrid in WPF

    Well, in WPF the difference between ListView and DataGrid is just one. Editing. You need editing use ...

  6. [实战篇入门]02-POI简单创建Excel

    周日的小讲堂要讲到这里,趁中午时间写点东西,记录昨天晚上完成的东西,在这里只是简单的介绍如何创建对于样式问题,我不过多的说,因为之后的教程会使用模版方式搞定! 在学习这段代码的时候,希望各位访问Apa ...

  7. 35 个你也许不知道的 Google 开源项目

    转载自:http://blog.csdn.net/cnbird2008/article/details/18953113 Google是支持开源运动的最大公司之一,它们现在总共发布有超过500个的开源 ...

  8. redis cluster以及master-slave在windows下环境搭建

    一.redis cluster环境搭建: 1.了解Redis Cluster原理: 详细了解可参考:http://doc.redisfans.com/topic/cluster-tutorial.ht ...

  9. SpringBoot 在CentOS7部署,注册为服务,开机启动

    1.首先在maven工程的pom文件中引入以下标签并保存 <build> <plugins> <plugin> <groupId>org.springf ...

  10. HDU 1548 A strange lift (广搜)

    题目链接 Problem Description There is a strange lift.The lift can stop can at every floor as you want, a ...