Django自带的runserver实现远程访问
最近在Ubuntu服务器上创建了一个Django项目,想实现远程访问:
新创建一个名为my_site的Django项目,目录结构如下:
项目结构
../my_site/
├── db.sqlite3
├── manage.py
└── my_site
├── __init__.py
├── __pycache__
│ ├── __init__.cpython-36.pyc
│ ├── settings.cpython-36.pyc
│ ├── urls.cpython-36.pyc
│ └── wsgi.cpython-36.pyc
├── settings.py
├── urls.py
└── wsgi.py
查看IP
首先得获取服务器公网IP,留着后面有用
比如本机的公网IP是:48.108.238.27;内网IP是:173.18.50.48
修改配置文件
如果是在另一台电脑上web访问要用 python manage.py ip:port (注意port不要冲突)的形式;
在项目中找到my_site(项目名称)目录下面的settings.py
文件,在ALLOWED_HOSTS
列表中添加以下内容
root@onefine:/home/admin/PythonProject/test/my_site# vim my_site/settings.py
# 省略...
ALLOWED_HOSTS = ['48.108.238.27','173.18.50.48','localhost','0.0.0.0:8000','127.0.0.1']
#省略...
这里的'48.108.238.27'
是公网IP,'173.18.50.48'
是内网IP(这个可以不要)
保存之后退出,最好cat
一下确认。
注意ALLOWED_HOSTS
列表也可以改为ALLOWED_HOSTS = ['*']
但是最好不要这样做。
启动测试
启动时使用python3 manage.py runserver 0.0.0.0:80
监听所有IP,端口为80
:
root@onefine:/home/admin/PythonProject/test/my_site# python3 manage.py runserver 0.0.0.0:80
Performing system checks...
System check identified no issues (0 silenced).
You have 15 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
January 17, 2019 - 07:31:45
Django version 2.1.5, using settings 'my_site.settings'
Starting development server at http://0.0.0.0:80/
Quit the server with CONTROL-C.
打开浏览器输入公网IP(这里是48.108.238.27,80端口可省略),或者输入IP所绑定的域名就可以看到下面的调试页面。
可以看到终端中有响应:
----------------------------------------
Not Found: /favicon.ico
[17/Jan/2019 07:38:12] "GET /favicon.ico HTTP/1.1" 404 1972
[17/Jan/2019 07:38:13] "GET / HTTP/1.1" 200 16348
大功告成。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Django:runserver实现远程访问 - Python技术站