Django:runserver實現遠程訪問


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

大功告成。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM