python实训小队项目总结

python实训小队项目总结

项目展示:

主界面
在这里插入图片描述
在这里插入图片描述
注册界面
在这里插入图片描述
登陆界面
在这里插入图片描述
首页介绍
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
个人中心介绍
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

项目总结:

前端

  • 通过自己之前学的bootstrap导入再进行网页模板内容修改和排版,用前端bootstrap框架进行前端网页的编写还是比较轻松的。一开始较麻烦的是对于一些交互的处理,但写出一个大概,后面就可以根据着修改。
  • 难/疑点:运用模板得清楚其大概,有时候一些样式会被覆盖,要通过!import或者写在html的style中进行增加权重。
  • 新知识:以前都是用display进行一个页面内容的转变呈现。
    发现我的队友是直接另外弄了个页面把部分内容替换了,也挺好哈哈哈,少写了js,后端跳转直接。

后端

  • 运用的部分都是上课所教学的东西,进行修改,可直接使用
  • 难点/疑点:

1、对于空气质量数据的爬取,因为接口只有半小时更新一次,所以需要半或一小时遍历一次,把数据加入数据库。
问题:用scrapy框架进行爬取,直接在spider.py中添加死循环执行一次所有城市,sleep半个小时,但这样会使得程序一直不操作的死循环。
原因: 有可能是因为scrapy的运行流程,spider获取完url传过去,就被sleep了,后面调度器的运行和资源的获取都被停止了
尝试方法:
有个启动文件begin.py是用来启动scrapy框架运行的,所以就进行

import time
from scrapy import cmdline
while True:
    cmdline.execute("scrapy crawl air_spider".split())
    time.sleep(3600)

最后发现只执行了一次就停止了,所以就就建了一个

import os
import time
while True:
    os.system("python begin.py")
    time.sleep(3600)

疯狂套娃哈哈哈最后成功地定时执行爬取数据
2、改项目主文件夹名称的时候记得修改,要不运行会出错
settings.py下的

ROOT_URLCONF = '所改的文件名.urls'

3、从数据库取出来的数据转为json转为python数据进行处理成字典类型,最后传给前端

 data= serializers.serialize("json", Air_date.objects.filter(area=key))
 data= json.loads(data)

部署

  • 挺好的,一开始一窍不通,多看部署文档,多操作就知道哪些方面是需要改的,怎么去操作修改一些东西,再怎么去重启。一步一步地去操作。
  • 疑点/难点:

1、静态资源:
因为部署前有对静态资源,进行打包,在nginx配置文件静态文件路径也是该打包路径,所以与我们原来静态文件的路径不一样,需要对后端调用静态文件的代码路径进行修改。前端则不需要,因为django对前端路径的静态路径都进行固定配置了STATIC_URL,而STATIC_ROOT 是属于部署后对于静态资源的操作方面需要用的。

STATIC_URL = '/static/'
STATICFILES_DIRS = (
   os.path.join(BASE_DIR, 'statics'),
)
MEDIA_ROOT = os.path.join(BASE_DIR, "statics/images")
STATIC_ROOT = os.path.join(BASE_DIR, "static_new/")

2、资源的权限问题:
有一些资源会出现权限不够,访问不到
用上老师教的办法进行权限的赋予

cd /usr/share/fonts/windows
chmod 755 *.ttf

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,引擎关闭该网站

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值