远程服务器上的Django教程:如何在浏览器中查看?

时间:2011-02-23 22:21:17

标签: django

我开始使用Django教程,但我遇到了麻烦。在我的常用域上创建了示例“mysite”后,我希望能够在浏览器中显示它。该教程指向http://127.0.0.1:8000。但是,这不会起作用,因为我正在远程这样做。

[背景资料]

我所做的,显然是成功的,是 django-admin.py startproject mysite (创建包含四个文件的mysite目录) python manage.py runserver (验证模型......发现0错误等)

绝对路径是 /家庭/ toewsweb /的public_html / pythonlab / mysite的 我应该使用什么URL在浏览器中显示它?

我也把mysite放进去了 / home / toewsweb / mysite(因为它不应该进入可公开访问的目录) 在这种情况下我应该使用什么URL?

这是一个虚拟专用服务器,因此我可以访问httpd.conf。我已经下载并安装了mod_wsgi并将其添加到Apache配置中。我实际上设置了一个子文件,其DocumentRoot为/ home / toewsweb / public_html / pythonlab / mysite;但是,当我将浏览器指向该子域时,我只是获取目录列表。

[/背景资讯]

现在,我只想知道如何在浏览器中查看我正在处理的内容。

谢谢!

2 个答案:

答案 0 :(得分:12)

出于开发目的,没有必要搞乱配置WSGI(尽管知道它是有用的,因为你需要将其用于生产)。只需启动开发服务器,以便它侦听外部端口:

./manage.py runserver 0:8000

这绑定到外部IP地址,所以现在您可以通过该服务器上的端口8000访问您的Django站点:

http://whatever.my.ip.is:8000

答案 1 :(得分:0)

您需要在WSGIScriptAlias中设置apache VirtualHost指令才能正确加载python和您的网站。 Django's docs对您需要做的事情有很好的解释。

基本配置

安装并激活mod_wsgi后,编辑httpd.conf文件并添加:

WSGIScriptAlias / /path/to/mysite/apache/django.wsgi

上面的第一位是你想要在你的应用程序服务的URL(/表示根URL),第二位是你的系统上的“WSGI文件”的位置 - 见下文 - 通常在里面你的项目。这告诉Apache使用该文件定义的WSGI应用程序提供给定URL下的任何请求。

接下来我们需要实际创建这个WSGI应用程序,所以创建WSGIScriptAlias第二部分中提到的文件并添加:

import os
import sys

os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

如果您的项目默认情况下不在您的PYTHONPATH上,您可以添加:

path = '/path/to/mysite'
if path not in sys.path:
    sys.path.append(path)

在导入系统行的下方,将项目放在路径上。记得用正确的设置文件替换'mysite.settings',用你自己项目的位置替换'/ path / to / mysite'。

另一种选择是运行开发服务器,以便它可以在外部访问,如下所示:

python manage.py runserver 0.0.0.0:80

虽然请不要在生产中使用它。开发服务器是单线程的,并且尚未进行安全审核。