python实训小队项目总结
python實訓小隊項目總結
- 項目展示:
- 項目總結:
- 前端
- 后端
- 部署
項目展示:
主界面
注冊界面
登陸界面
首頁介紹
個人中心介紹
項目總結:
前端
- 通過自己之前學的bootstrap導入再進行網頁模板內容修改和排版,用前端bootstrap框架進行前端網頁的編寫還是比較輕松的。一開始較麻煩的是對于一些交互的處理,但寫出一個大概,后面就可以根據著修改。
- 難/疑點:運用模板得清楚其大概,有時候一些樣式會被覆蓋,要通過!import或者寫在html的style中進行增加權重。
- 新知識:以前都是用display進行一個頁面內容的轉變呈現。
發現我的隊友是直接另外弄了個頁面把部分內容替換了,也挺好哈哈哈,少寫了js,后端跳轉直接。
后端
- 運用的部分都是上課所教學的東西,進行修改,可直接使用
- 難點/疑點:
1、對于空氣質量數據的爬取,因為接口只有半小時更新一次,所以需要半或一小時遍歷一次,把數據加入數據庫。
問題:用scrapy框架進行爬取,直接在spider.py中添加死循環執行一次所有城市,sleep半個小時,但這樣會使得程序一直不操作的死循環。
原因: 有可能是因為scrapy的運行流程,spider獲取完url傳過去,就被sleep了,后面調度器的運行和資源的獲取都被停止了
嘗試方法:
有個啟動文件begin.py是用來啟動scrapy框架運行的,所以就進行
最后發現只執行了一次就停止了,所以就就建了一個
import os import time while True:os.system("python begin.py")time.sleep(3600)瘋狂套娃哈哈哈最后成功地定時執行爬取數據
2、改項目主文件夾名稱的時候記得修改,要不運行會出錯
settings.py下的
3、從數據庫取出來的數據轉為json轉為python數據進行處理成字典類型,最后傳給前端
data= serializers.serialize("json", Air_date.objects.filter(area=key))data= json.loads(data)部署
- 挺好的,一開始一竅不通,多看部署文檔,多操作就知道哪些方面是需要改的,怎么去操作修改一些東西,再怎么去重啟。一步一步地去操作。
- 疑點/難點:
1、靜態資源:
因為部署前有對靜態資源,進行打包,在nginx配置文件靜態文件路徑也是該打包路徑,所以與我們原來靜態文件的路徑不一樣,需要對后端調用靜態文件的代碼路徑進行修改。前端則不需要,因為django對前端路徑的靜態路徑都進行固定配置了STATIC_URL,而STATIC_ROOT 是屬于部署后對于靜態資源的操作方面需要用的。
2、資源的權限問題:
有一些資源會出現權限不夠,訪問不到
用上老師教的辦法進行權限的賦予
3、python程序執行是在虛擬環境中,所以一些庫的安裝也要在虛擬環境中,一開始沒注意就沒進虛擬環境直接安裝,后來一部署發現老是報模塊不存在。
4、虛擬環境可以執行多個程序,部署項目進行訪問就只能一個。所以我們實時更新的操作就是在后臺運行爬取程序對程序進行不斷爬取數據修改數據庫,然后給項目訪問使用。程序ctrl+z會掛起和暫停運行,所以需要進行以下操作,進行bg在后臺運行
Ctrl + z之后的恢復
(1) CTRL+Z掛起進程并放入后臺
(2) jobs 顯示當前暫停的進程
(3) bg %N 使第N個任務在后臺運行(%前有空格)
(4) fg %N 使第N個任務在前臺運行
默認bg,fg不帶%N時表示對最后一個進程操作!
Scrapy運行流程
1、引擎打開一個網站,找到處理該網站的spider,向spider索要url
2、引擎從spider中獲取第一個要抓取的url地址,并通過調度器以Request形式調度
3、引擎向調度器請求下一個要抓取的url地址
4、調度器返回下一個要抓取的url給引擎,引擎將url通過中間價轉發給下載器下載
5、下載完成,下載器生成該頁面的Response,并通過下載中間件發送給引擎
6、引擎從下載器中接收到Response,并通過蜘蛛中間件發送給spider處理
7、spider處理Response,返回抓取到的item以及新的Request給引擎
8、引擎將spider返回的item給管道,將新的Request給調度器
9、重復第二步到第八步直到調度器中沒有更多的Request,引擎關閉該網站
總結
以上是生活随笔為你收集整理的python实训小队项目总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【DSP开发】【VS开发】MUX和DEM
- 下一篇: Python网络爬虫简单教程——第一部