2016-09-15 56 views
0

我需要在lib.py中进行其他操作,并且需要访问main.py中的用户输入数据,因为它需要就是这样。我该怎么做呢?需要从lib.py中的main.py访问self.request.GET

从lib.py中的主要导入MainHandler中执行,然后调用它为“works”,因为它不会给出任何代码错误,但是在完成这种方式时会显示一个空白页面,我无法导入它。

main.py

import webapp2 
from lib import FormData 
from pages import FormPage 
from pages import ResultsPage 


class MainHandler(webapp2.RequestHandler): 
    def get(self): 
     f = FormPage() 
     s = ResultsPage() 
     fd1 = FormData() 

    if self.request.GET: 
     fd1.name = self.request.GET['name'] 
     fd1.email = self.request.GET['email'] 
     fd1.weight = self.request.GET['weight'] 
     fd1.height = self.request.GET['height'] 
     self.response.write(s.second_page(fd1.name, fd1.email, fd1.weight, fd1.height)) 
    else: 
     self.response.write(f.form_page) 

app = webapp2.WSGIApplication([ 
('/', MainHandler) 
], debug=True) 

lib.py

class FormData(object): 
    def __init__(self): 
     pass 

我需要能够访问:

fd1.name = self.request.GET['name'] 
fd1.email = self.request.GET['email'] 
fd1.weight = self.request.GET['weight'] 
fd1.height = self.request.GET['height'] 

在lib.py

回答

1

你如果/ else语句不在之外方法,所以它甚至不应该正常工作。

我认为最简洁的方法是将请求数据传递给已在初始化程序中的FormData类。因此,代码是这样的:

main.py

import webapp2 
from lib import FormData 
from pages import FormPage 
from pages import ResultsPage 


class MainHandler(webapp2.RequestHandler): 
    def get(self): 
     f = FormPage() 
     s = ResultsPage() 
     fd1 = FormData(data=self.request.GET) 

     if fd1.name: # This is None, if form has not been submitted 
      self.response.write(s.second_page(fd1.name, fd1.email, fd1.weight, fd1.height)) 
     else: 
      self.response.write(f.form_page) 

app = webapp2.WSGIApplication([ 
    ('/', MainHandler) 
], debug=True) 

lib.py

class FormData(object): 

    def __init__(self, data): 
     self.name = data.get('name') 
     self.email = data.get('email') 
     self.weight = data.get('weight') 
     self.height = data.get('height') 

作为一个方面说明,我真的不知道该webapp2的框架,所以有可能做一个更好的方法来做到这一点。

+0

谢谢,对不起,缩进从未真正复制/粘贴好。他们完美无缺。谢谢您的帮助。 – Scary