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
大功告成。