H5W3
当前位置:H5W3 > 其他技术问题 > 正文

flask 怎么重新加载导入的模块数据?

情况是这样的:
我用 flask 做了微信公众号自动回复,urllib做了数据采集。然后通过在用户公众号回复固定词语,自动返回爬虫采集的数据结果。

|– app
| |– __init__.py
| |– forms.py
| |– p2p.py
| |– static
| |– templates
| |– views.py
| `– wechat.py
|– config.py
|– flask
|– uwsgi.ini
|– run.py
`– tmp

p2p.py:
爬虫采集的数据没有保存数据库,直接写到一个函数

p2pcontent = '本次抓取的数据中包含未结束的标的以及下次时间开放的标的。\n下次投标开放时间为:' + nexttime +'\n本次数据采集时间为:'+ time + '\n本次抓取的数据中,标的共有' + targetnum + '个。其中:\n年率 13.2% :' + str(len(numA)) + '个\n年率 13.5% :' + str(len(numB)) + '个\n年率 13.8% :' + str(len(numC)) + '个'

views.py:

from app import wechat

wechat.py:
调用 p2p.py 的 p2pcontent 作为公众号自动回复的内容。

from app import p2p 

现在问题时,第一次公众号回复的数据是爬虫实时采集的,但之后,爬虫一直没有重新采集数据。我应该怎么让
p2p.py 在有新请求的时候重新执行爬虫的采集工作?或者我应该怎么设置定时执行?

我这个小白估摸着,是不是 p2p.py没有重新执行?
这种问题,我都不知道怎么搜。。。
求诸位高手科普一下。

回答:

p2p.py里 定义 class A, 使用 def __init__(self,a,b)来初始化部分数据,从 def B(self)来获取需要的返回值。
p2p.py的代码:

class A:
    def __init__(self,a,b):
        self.a = a
        self.b = b
        ....
    def B(self):
        ....

wechat里的代码:

from app import p2p

a = ''
b = ''
art = p2p.A(a,b)
content = art.B()

执行wechat时,每次从 p2p.py获取返回值都会初始化 ab 从而每次都是重新执行p2p.py 来获取最新数据值content

回答:

定时任务框架:http://apscheduler.readthedoc…

本文地址:H5W3 » flask 怎么重新加载导入的模块数据?

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址