昨天配置好运行环境后,今天想将我做的一个django项目部署上去。摸了半天,各种谷歌百度,各种错误解答,确实让我浪费了不少时间,是以在此将我部署django项目的完整过程记录下来,以供参考。
我的项目是用django命令生成的,django-admin.py startproject mysite,项目路径为:D:\projects\python\mysite
D:\PROJECTS\PYTHON
├─mysite
└─mysite
初始化时,第一层mysite里面有一个文件,manage.py
mysite/mysite目录里有四个文件:
__init__.py , settings.py , urls.py , wsgi.py
好,前期工作做完了,要开始部署了。
第一步,我们需要在第一层mysite目录下添加一个wsgi文件,名字随便,我的命名为:index.wsgi
里面的内容为:
# -*- coding: UTF-8 -*-
import os,sys
import django.core.handlers.wsgi
workspace = 'D:/projects/python/mysite'
os.chdir(workspace) #注意这句话,之前我没有加这句话,导致无法找到项目路径
sys.path.append(workspace)
sys.path.append(workspace+'mysite')
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
application = django.core.handlers.wsgi.WSGIHandler()
# -*- coding: UTF-8 -*-
from django.http import HttpResponse
#首页
def index(request):
return HttpResponse('hello world!')
最后在mysite/mysite目录中的urls.py文件中,添加一个默认匹配路径(以下url表示所有的请求都可以用index函数来进行答复):
from django.conf.urls import patterns, include, url
urlpatterns = patterns('',
# Examples:
url(r'^$', 'mysite.views.index'),
)
第二步:在httpd安装目录下的conf文件夹中,打开httpd.conf,稍稍做些修改:
注意看这一行:
#Listen 12.34.56.78:80
Listen 80 #这里监听80端口,当然你也可以添加其他监听的端口,在这里我们就不做修改了
还有这一行:
# Virtual hosts
Include conf/extra/httpd-vhosts.conf #这行的注释去掉,我们加载这个配置文件来管理虚拟主机
以及这行:
ServerName localhost # 可以填写自己电脑的ip,或者localhost
第三步,我们在我们上面提到过的httpd-vhosts.conf 文件中进行配置mysite项目的映射
如果是新安装的httpd,则可以完全清空此问卷的内容,然后贴上以下配置:
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot D:/projects/python/mysite/mysite
ServerName localhsot
#ServerAlias loalhost
AddDefaultCharset UTF-8
ErrorLog "logs/mysite.log"
CustomLog "logs/mysite.log" combined
WSGIScriptAlias /mysite D:/projects/python/mysite/index.wsgi
<Directory "D:/projects/python/mysite">
Allow from all
</Directory>
<Directory "D:/projects/python/mysite/mysite">
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
好了,需要配置的东西基本完成了,现在我们在cmd控制台cd到httpd的bin目录,输入:httpd -k start,启动httpd服务,
然后在浏览器中输入:http://localhost/mysite/
浏览器中成功打印出:hello world!
(图片加不进来,算了)