2016-05-23 28 views
0

Я использую торнадо, чтобы получить список доменов и перебрать эти домены и запустить процесс для каждого. Я продолжаю ошибаться, и я, вероятно, что-то делаю неправильно, но я не могу понять.TypeError: объект «NoneType» не является итерируемым - tornado

Вот отслеживающий:

File "/usr/local/lib/python2.7/site-packages/tornado/web.py", line 699, in render 
    html = self.render_string(template_name, **kwargs) 
    File "/usr/local/lib/python2.7/site-packages/tornado/web.py", line 804, in render_string 
    namespace = self.get_template_namespace() 
    File "/usr/local/lib/python2.7/site-packages/tornado/web.py", line 828, in get_template_namespace 
    namespace.update(self.ui) 
TypeError: 'NoneType' object is not iterable 

А вот код:

class MainHandler(tornado.web.RequestHandler): 
    def get(self): 
     # product = self.get_argument('product-type', '') 
     apikey = self.get_argument('apikey', '') 
     domain = self.get_argument('domain', '') 
     start = self.get_argument('start', '') 
     end = self.get_argument('end', '') 
     urls = domain.split(",") 
     for u in urls: 
      filePath = u + "_" + start + "_" + end + ".csv" 
      if apikey: 
       results = max_concurrents(apikey, u, start, end, save_to=True) 
       if filePath: 
        print filePath + 'valid' 
        self.render('index.html', data=filePath, domain=u, start=start, end=end) 
      else: 
       print filePath + 'invalid' 
       self.render('index.html', data=filePath) 

    def post(self): 
     # product = self.get_argument('product-type', '') 
     apikey = self.get_argument('apikey','') 
     domain = self.get_argument('domain','') 
     start = self.get_argument('start','') 
     end = self.get_argument('end','') 
     urls = domain.split(",") 
     for u in urls: 
      filePath = u + "_" + start + "_" + end + ".csv" 
      print filePath 
      print r 

ответ

1

Это означает, что для итерация над чем-то, что нет. Я подозреваю, что url не является ничем из-за итерации.

Добавьте некоторую отладку, чтобы узнать, нет ли url или имеет какое-либо значение.

+0

Если 'domain' был None, он будет ошибочен на' urls = domain.split (",") ' –

+0

Спасибо за указание: ^) – Li357

0

Вы не можете позвонить в RequestHandler.render() несколько раз; это завершает запрос (и оставляет обработчик в недопустимом состоянии, чтобы вы обычно возвращались после рендеринга). Если вы просто хотите объединить все визуализации шаблонов, вы можете позвонить self.write(self.render_string('index.html', ...)).