我开始使用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;但是,当我将浏览器指向该子域时,我只是获取目录列表。
[/背景资讯]
现在,我只想知道如何在浏览器中查看我正在处理的内容。
谢谢!
答案 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
虽然请不要在生产中使用它。开发服务器是单线程的,并且尚未进行安全审核。