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

飘雪的浮云
  • 54

情况是这样的:
我用 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没有重新执行?
这种问题,我都不知道怎么搜。。。
求诸位高手科普一下。

回复
阅读 3.5k
2 个回答
飘雪的浮云
  • 54
✓ 已被采纳

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏