如果我们不使用django框架来开web,如使用apache+mod_wsgi+python,或者直接apache+python,我们一开始就部署到apache上面的,一边开发一边直接在apache上测试,但是使用django的话,一般开始阶段,是直接使用
python manage.py runserver
来让django架设一个暂时的web server,供我们测试。
当我们想要把我们开发的项目的搬到apache中运行时就需要做一些额外的事情。
下面从创建django工程到创建app到测试到部署,一一讲解。
1. 创建项目
使用
python django-admin.py startproject blogsys
创建一个新项目,上面的例子中创建了一个blogsys的新项目。
2. 创建app
有了项目后,再就是创建app,使用:
python manage.py startapp blog
接着按照django官方提供的教程,配置settting.py文件,创建模型类,创建模板,sync数据库等操作。
接下来就可以直接使用
python manage.py runserver
来启动刚才创建的项目,然后在浏览器中输入:
127.0.0.1:8000
来查看项目的首页。
接下来就是如何项目部署在apache上。
3. 创建一个新的apache的virtualhost
去到apeche的安装目录,在linux下,通常是:
/etc/apache2/
cd 进入site-avaiable目录,创建新的文件,例如 blog,输入下面内容:
1 <VirtualHost *:8088>
2
3 ServerName 127.0.0.1
4 DocumentRoot /var/www/django/blogsys
5 LogLevel info
6 ErrorLog ${APACHE_LOG_DIR}/blogsys -error.log
7 CustomLog ${APACHE_LOG_DIR}/blogsys -access.log Combined
8
9 WSGIScriptAlias / /var/www/django/blogsys/django.wsgi
10
11 <Directory />
12 Options indexes
13 Order allow,deny
14 Allow from all
15 </Directory>
16
17 <Directory /var/www/django/blogsys>
18 Options ExecCGI
19 Order allow,deny
20 Allow from all
21 </Directory>
22
23
24 </VirtualHost>
在去ports.conf这个文件中添加
NameVirtualHost: *:8088
listen 8088
然后,使用
sudo a2ensite blog
让apache是blog配置生效。
接下来使用
sudo service apache2 restart
重启apache服务器。
4. 创建网站的总入口处理
注意上面blog配置文件中蓝色的一行吧,这个就是当访问网站的根目录的时候,的总入口处理代码。
因此去到blogsys目录,创建一个django.wsgi文件,内容如下:
1 import os
2 import sys
3 import django.core.handlers.wsgi
4 setpath = '/var/www/django/blogsys'
5 if setpath not in sys.path:
6 sys.path.append( setpath )
7
8 urlpath = '/var/www/django'
9 if urlpath not in sys.path:
10 sys.path.append( urlpath )
11
12 os.environ[‘DJANGO_SETTINGS_MODULE’] = 'settings'
13
14
15 application=django.core.handlers.wsgi.WSGIHandler()
16
17
注意因为django框架要导入两个文件一个settings.py还有一个urls.py,需要将这两个文件对应的目录加到python的sys.path中,需要在
import这2个文件时,python解释器就会从sys.path中找到对应目录。
5. 测试网站
这时候在地址栏输入
127.0.0.1:8088
就可以看到你的项目的首页了。
版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.