2016-09-10 6 views
0

私はこれを1時間以上見てきましたが、何が起こっているのかわかりません。HTML印刷が間違っています

スクリプトが

import webapp2 

class MainHandler(webapp2.RequestHandler): 
def get(self): 
    p = Page() 

    if self.request.GET: 
     name = self.request.GET['name'] 
     age = self.request.GET['age'] 
     time = self.request.GET['time'] 
     model = self.request.GET['model'] 
     radio = self.request.GET['trade'] 
     self.response.write(p.print_after(name, age, time, model, radio)) 
     print name + age + time + model + radio 
    else: 
     self.response.write(p.print_one) 

class Page(object): 
def __init__(self): 
    self.page_body = ''' 
    <!DOCTYPE HTML> 
     <html> 
     <head> 
     <meta charset="utf-8"> 
     <link rel="stylesheet" type="text/css" href="css/main.css"> 
     <title>Audi Test Drive Request</title> 
     </head> 
     <body> 

<img src="assets/custom/images/logo.png" title="logo" alt="" width="200px" height="150px"/> 

<h3>It's awesome that you want to test-drive one of our vehicles</h3> 

<form method="GET" action=""> 

<label>Name</label> 
<br> 
<input type="text" name="name" required> 
<br> 
<label>Age</label> 
<br> 
<input type="text" name="age" required> 
<br> 
<label>Time</label> 
<br> 
<select name="time" required> 
    <option value="12:00 PM">12:00 PM</option> 
    <option value="12:30 PM">12:30 PM</option> 
    <option value="1:00 PM">1:00 PM</option> 
</select> 
<br> 
<label>Model</label> 
<br> 
<select name="model" required> 
    <option value="2008 Audi A4">2008 Audi A4</option> 
    <option value="2008 Audi S4">2008 Audi S4</option> 
    <option value="2008 Audi RS4">2008 Audi RS4</option> 
</select> 
<br> 
<label>Are you trading in a vehicle?</label> 
<br> 
<input type="radio" name="trade" value="yes" required>Yes<br> 
<input type="radio" name="trade" value="no" required>No<br> 
<br> 
<input type="submit" value="Request Test Drive"> 

     </form> 
</body> 
</html> 
''' 
    self.page_after = ''' 
    <!DOCTYPE HTML> 
     <html> 
     <head> 
     <meta charset="utf-8"> 
     <link rel="stylesheet" type="text/css" href="css/main.css"> 
     <title>Audi Test Drive Request</title> 
     </head> 
     <body> 

<img src="assets/custom/images/logo.png" title="logo" alt="" width="200px" height="150px"/> 

<h3>It's awesome that you want to test-drive one of our vehicles</h3> 
</body 
</html> 
''' 

def print_one(self): 
    page_content = self.page_body 
    page_content = page_content.format(**locals()) 
    return page_content 

def print_after(self, name, age, time, model, radio): 
    after_page_content = self.page_after 
    after_page_content = after_page_content.format(**locals()) 
    return after_page_content 

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

、あなたのコード – jsbueno

+0

'page_content.format(**地元の人々())'それは醜い、無意味な、エラーを起こしやすいとデバッグが難しいため、インデントを修正してください。引き数を明示的にリストするのではなく、それをタイプして保存した30秒は、後でデバッグの時間に変換されます。 – spectras

+0

コードはちょうど私の端にインデントされ、ちょうど奇妙なものを貼り付けました。 – Cam

答えて

0

完全なHTMLを印刷することとしています唯一の「>」

を印刷し、その後、フォームが送信された後、プリント「print_after」されて、私はあなたのコードをテストし、再配置しますそれは少しです。フォームを送信するためにhttp postを使用し、フォーム変数を出力します。

import webapp2 

class HelloWebapp2(webapp2.RequestHandler): 
    def get(self): 
     self.response.write('''<!DOCTYPE HTML> 
     <html> 
     <head> 
     <meta charset="utf-8"> 
     <link rel="stylesheet" type="text/css" href="css/main.css"> 
     <title>Audi Test Drive Request</title> 
     </head> 
     <body> 

<img src="assets/custom/images/logo.png" title="logo" alt="" width="200px" height="150px"/> 

<h3>It's awesome that you want to test-drive one of our vehicles</h3> 

<form method="POST" action=""> 

<label>Name</label> 
<br> 
<input type="text" name="name" required> 
<br> 
<label>Age</label> 
<br> 
<input type="text" name="age" required> 
<br> 
<label>Time</label> 
<br> 
<select name="time" required> 
    <option value="12:00 PM">12:00 PM</option> 
    <option value="12:30 PM">12:30 PM</option> 
    <option value="1:00 PM">1:00 PM</option> 
</select> 
<br> 
<label>Model</label> 
<br> 
<select name="model" required> 
    <option value="2008 Audi A4">2008 Audi A4</option> 
    <option value="2008 Audi S4">2008 Audi S4</option> 
    <option value="2008 Audi RS4">2008 Audi RS4</option> 
</select> 
<br> 
<label>Are you trading in a vehicle?</label> 
<br> 
<input type="radio" name="trade" value="yes" required>Yes<br> 
<input type="radio" name="trade" value="no" required>No<br> 
<br> 
<input type="submit" value="Request Test Drive"> 

     </form> 
</body> 
</html> 
''') 
    def post(self): 
     if self.request.POST: 
      name = self.request.POST['name'] 
      age = self.request.POST['age'] 
      time = self.request.POST['time'] 
      model = self.request.POST['model'] 
      radio = self.request.POST['trade'] 
      self.response.write(name +" " + age +" " + time +" " + model +" " + radio) 

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

def main(): 
    from paste import httpserver 
    httpserver.serve(app, host='127.0.0.1', port='8080') 

if __name__ == '__main__': 
    main() 

上記のコードは、それが正確に何をしたいない可能性があるポート8080でローカルWebサーバを開始しますが、多くのがあります。 appengineで実行することもできます。

関連する問題