創建Django項目並將其部署在騰訊雲上


這段時間在做scrapy爬蟲,對爬出來的數據基於Django做了統計與可視化,本想部署在騰訊雲上玩玩,但是因為以前沒有經驗遇到了一些問題,在這里記錄一下:

首先說下Django的創建與配置:

  1. 創建Django項目: 無論想要將項目創建在哪個文件夾下,都只需要cd到制定的文件夾下執行該命令即可:django-admin startproject babel_scrapy ("babel_scrapy"是項目名稱)

  2當然,僅僅創建一個項目是遠遠不夠的,一個Django項目的目錄最起碼應該是這樣的:

  

  1>最上邊那個是項目根目錄,下邊有一個和項目名稱同名的文件夾,這個是伴隨你項目的創建而同時生成的。

  2>下邊那個bscrapy文件夾是項目app,創建項目后是沒有的,需要自行創建,整個項目的后台邏輯基本上都在app中實現。

  創建app時,首先應該cd到我們的django項目文件夾下,執行:python manage.py startapp bscrapy ("bscrapy"是我創建的app名稱)

  3>在下面有一個staic文件夾,這個文件夾用來存放項目的一些靜態文件比如我們導入的js文件,layui文件,或者我們寫的css與js文件,

  這個static最開始也是沒有的,不過創建這個文件夾不需要命令,只要在項目名上邊右鍵new-->Directory,然后將名稱寫成static即可,

  當然,創建好的static是無法使用的,需要進行關聯配置,這個下邊再講。

  4>下邊還有一個templates文件夾用來存放我們寫的html模板文件,也需要我們自行創建自行配置。

  5>最后還有個manage.py 這是整個項目的啟動文件,是隨項目創建時而生成的,一般不需要我們去管,但是如果想要在啟動Django項目時掉用某些方法時,可以在manage.py中調用,不過不推薦。

  3下面我們說說配置:

    首先,我們Django啟動后肯定是想要訪問我們寫好的頁面,但是html模板文件又在templates文件夾下,所以先配置他:

    我們需要將“ os.path.join(BASE_DIR, "bscrapy/../templates") ” 放在babel_scrapy文件夾下的settings.py的這個地方:

     這樣,就可以找到這個文件夾了。

    然后再配置babel_scrapy下的urls.py文件,這個文件,顧名思義,做路由轉發的。

    再urls.py中 首先得導入一個文件,就是我們創建得bscrapy這個app下有一個views.py,這個py文件主要是負責后台邏輯實現的。

    在urls.py 這樣導入這個views.py  from bscrapy import views

    然后在這里寫路由轉發:

    這個index 是瀏覽器上的訪問路徑,比如 127.0.0.1:8000/index

    這時請求就發到了urls.py處,找到這個index,然后在bscrapy這個app下的views下找這個index方法

    在views.py中先導入這樣一句: from django.shortcuts import render 用來重定義,

    然后再寫入這個方法,意思是重定向到index.html文件,這時,項目就會找到templates文件夾,在里邊找到index.html文件,將其呈現到瀏覽器上,這是一個頁面的訪問就結束了

    

    當然,使用bscrapy這個app時,也需要配置,還是在settings.py中,像這樣加進去就好了:

               

    最后,因為html頁面有時需要用到類似於layui之類的東西,所以還要配置static文件夾:

          在settings中這樣寫就可以了:

     這樣的話,一個Django項目就搭建起來了

 

下面時我這次遇到的一些問題和使用到的命令。 

1:centos7關閉與開啟防火牆:

  關閉: systemctl stop firewalld

  開啟: systemctl start firewalld

  查看狀態: systemctl status firewalld 

  開機禁用  : systemctl disable firewalld

  開機啟用  : systemctl enable firewalld
  重載models數據庫的命令:
    python manage.py makemigrations
    python manage.py migrate
2:  Django項目首先需要設定哪些ip可以通過瀏覽器訪問該項目
  在 項目同名的文件夾下的settings.py 中:
  ALLOWED_HOSTS = []  這個列表中可以填寫允許訪問該項目的ip,如果寫“*”就說明允許任意ip訪問該項目。
3: 在啟動Django項目時 一半情況下是: python manage.py runserver 這樣僅僅本機可以訪問該項目
  python manage.py runserver 0.0.0.0:443  這樣的話是允許所有ip訪問該項目。
  而且有一點需要注意,為什么我的端口是443呢?寫445行嗎? 當然不行,因為我騰訊雲上的安全組的安全組規則設置的是對外開放的web服務端口是80和443
  所以應該是只有端口指定為這兩個其中之一,才可以訪問web服務的,當然,你也可以調整騰訊雲上的安全組規則。
如果這三點都注意到了的話,應該你的Django項目也可以正常訪問了的。
4: 剛剛寫完博客 就出現問題了。。。很無奈
  我在xshell上啟動了項目,但是當我關掉xshell后 項目就宕掉了。。。
  #nohup python3  /root/babel_scrapy/manage.py runserver 0.0.0.0:443  >manage.log   2>&1  </dev/null   & 
  這樣執行后,退出xshell后程序就不會宕掉了
 
 5: 項目搭建完成后輸入 python manage.py 0.0.0.0:443 項目就跑起來了,但是每次起項目時都要輸一遍,很麻煩,這時我們可以在pycharm左上角的edit中配置一下就OK了:
          

想了解更多Python關於爬蟲、數據分析的內容,歡迎大家關注我的微信公眾號:悟道Python

  


 


免責聲明!

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



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