Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4464779
  • 博文数量: 192
  • 博客积分: 10014
  • 博客等级: 上将
  • 技术积分: 8232
  • 用 户 组: 普通用户
  • 注册时间: 2006-07-21 00:22
文章分类

全部博文(192)

文章存档

2011年(4)

2009年(14)

2008年(174)

我的朋友

分类: Python/Ruby

2009-03-16 10:04:33

本文转自:
 

是经常与Rails相提并论的Python Web框架。但别的姑且不说,Django的环境搭建实在是不够亲切,简单的搭建过程中被雷到多次,特记录如下以供备忘。

安装Django

确保在Django安装之前已经安好了Python。

Django的最新Source可以从SVN获得:

然后执行Django的setup.py

  1. python setup.py install  

这里建议把python目录下的script文件夹加入环境变量

安装Apache的mod_python模块

虽然Django内置了Web服务器,但官方建议使用Apache的mod_python模块(- -|||那你还写他干什么)

安装好Apache后,从获得mod_python并安装(注意下载对应的python和Apache版本)

安装完毕后Apache目录下的modules文件夹内会有mod_python.so,在httpd.conf中写入

  1. LoadModule python_module modules/mod_python.so  

将mod_python模块加载进来然后重启Apache

创建Django项目

进入到在Apache的web页面目录下运行

  1. django-admin.py startproject newtest  

至此我们的第一个Django项目便成功创建了,此时需要牢记项目名称『newtest』,因为真正的雷才刚刚开始- -。

基于Location的Mod_python访问配置

同样是修改httpd.conf,下面是来自Django官网的配置例子

  1. "/mysite/">   
  2.     SetHandler python-program   
  3.     PythonHandler django.core.handlers.modpython   
  4.     SetEnv DJANGO_SETTINGS_MODULE mysite.settings   
  5.     PythonDebug On   
  6.     PythonPath "['/path/to/project'] + sys.path"  
  7.   

这里有三个参数需要注意:

  1. Location "/mysite/":这个参数是最终在url上反映出来的地址,也就是说目前我们访问Django项目所用的url就是,此参数可以自由更改,阿猫阿狗都可以。
  2. mysite.settings :这里的mysite必须是Django的项目名,即是刚才所创建的『newtest』,mod_python通过项目名来载入settings.py从而加载整个项目。此处设置不当会出现 ImportError: Could not import settings 'xxx.settings' (Is it on sys.path? Does it have syntax errors?): No module named xxx.settings 错误。
  3. ['/path/to/project'] : 这个参数是最雷的,需要设置为相对于Django项目的父目录,也就是运行django-admin.py startproject时的所在目录。

因此我的Apache的htdocs目录位于D:\xampp\htdocs,最终设置结果为

  1. "/newtest/">   
  2.     SetHandler python-program   
  3.     PythonPath "sys.path+['D:/xampp/htdocs']"  
  4.     PythonHandler django.core.handlers.modpython   
  5.     SetEnv DJANGO_SETTINGS_MODULE newtest.settings   
  6.     PythonDebug On   
  7.   

然后重启Apache,访问,就可以看到亲切的django运行画面了。

Hello Django

终于可以开始第一个程序了,在Django项目下新建一个helloworld.py文件,内容为

  1. from django.http import HttpResponse   
  2.   
  3. def index(request):   
  4.     return HttpResponse("Hello, Django.")  

然后编辑urls.py

  1. from django.conf.urls.defaults import *   
  2.   
  3. urlpatterns = patterns('',   
  4.     (r'^newtest/index''newtest.helloworld.index'),   
  5. )  

最后重启Apache - -|||,注意Django的所有配置更新都是需要重启Apache的……通过index看看结果吧……

阅读(2787) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~