2016-06-17 7 views
0

Ich übergebe eine Zahl von einem HTML-Formular an eine Flask-Ansicht, um zu steuern, wie viele Tweets ich mit einem Tweepy-Listener sammle. Der Zuhörer sammelt jedoch ständig weiter, anstatt nach dem maximalen Wert zu stoppen, den ich bestanden habe. Wenn ich den Maximalwert manuell festlege, funktioniert es einwandfrei. Wie übertrage ich eine Nummer von einem Formular an den Listener?Tweepy StreamListener bekommt keine Zahl aus dem Formular in der Flask-Ansicht

@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()) 
    ... 

Antwort

0

Sie versuchen, eine Zeichenfolge mit einem int zu vergleichen. In Python 2 sind Zeichenfolgen immer größer als Zahlen.

Alle Eingabewerte in HTML, unabhängig vom Typ der Eingabe, sind Zeichenfolgen. Alle Daten, die Flask in den Formulardaten sieht, sind also Strings. Sie müssen selbst in eine Zahl umwandeln.

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