Tweepy StreamListener 没有从 Flask 视图中的表单中获取数字

Tweepy StreamListener doesn't get number from form in Flask view

我正在将一个数字从 HTML 表单传递到 Flask 视图,以控制我使用 Tweepy 侦听器收集的推文数量。但是,侦听器只是一直在收集,而不是在我超过最大值后停止。如果我手动设置最大值,它可以正常工作。如何将表单中的数字传递给侦听器?

@fetchtweet.route('/fetchtrainingtweets/', methods=["POST"])
def ttweets():
    ...
    number = request.form['number']

    class Listener(StreamListener):
        def __init__(self, api=None):
            self.api = api or API()
            self.n = 0
            self.m = number

        def on_data(self, data):
            ...
            if self.n >= self.m:
                return False
            ...
    ...
    stream = Stream(auth, listener())
    ...

您正在尝试将字符串与整数进行比较。在Python2中,字符串总是大于数字。

HTML中的所有输入值,无论输入的类型是什么,都是字符串。所以 Flask 在表单数据中看到的所有数据都是字符串。你必须自己转换成数字。

number = request.form.get('number', type=int)