2016-12-11 6 views
0

タイトルはあまり役に立ちませんが、私は本当にそれを書くべきか分かりません。私のコードでは、名前とスコアを入力するための入力があるページを表示し、次にそれをhigh.pyボードのように最高から最低のリストにするためにlibrary.pyページのいくつかの関数を実行します。そして、底に平均得点が必要です。しかし、私はこれで本当に苦労しています。まず第一に私は情報を入力するときにそれもそれを登録しません。私はフォームタグでGETメソッドを使用しましたが、情報はどこにもありません。少なくとも、URLバーに入るはずです。しかし、そうではありません。そして、私は図書館のページで何をすべきかも知らない。それはちょうど大きな混乱です。あなたが私を助けることができれば、ありがとう。Python - 入力された情報と平均を表示

main.py

import webapp2 

#from library import GameInfo 
from page import FormsPage, ResultsPage 

class MainHandler(webapp2.RequestHandler): 

    def get(self): 
     f = FormsPage() 
     r = ResultsPage() 

     if self.request.GET: 
      user = self.request.GET['name'] 
      score = self.request.GET['score'] 

      self.response.write(r.rbegin + r.rbody) 

     else: 
      self.response.write(f.fbegin + f.fbody + f.fformbox + f.fforms) 


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

library.py

class ScoresList(): 
    def __init__(self): 
     self.name = '' 
     self.__score = 0 
     #keeps memory of all the scores intered 
    def list_scores(self, s): 
     self.__score_array.append(s) 

    def make_list(self): 
     output = '' 
     for score in self.__score_array: 
      output += name + score 
     return output 

class Average(): 
    pass 

page.py

class FormsPage(object): 
    fbegin = '''<!DOCTYPE HTML> 
<html> 
    <head> 
     <title>Post Your High Scores</title> 
     <link href="/css/style.css" rel="stylesheet" type="text/css"/> 
    </head>''' 
    fbody = '''<body> 
    <h1>Submit Your High Scores</h1>''' 
    fformbox = '''<div> ''' 
    fforms = '''<form method="GET"> 
      <label>Name: </label><input type="text" name"name"/> 
      <label>Score: </label><input type="text" name"score"/></br> 
      <label>Name: </label><input type="text" name"name"/> 
      <label>Score: </label><input type="text" name"score"/></br> 
      <label>Name: </label><input type="text" name"name"/> 
      <label>Score: </label><input type="text" name"score"/></br> 
      <label>Name: </label><input type="text" name"name"/> 
      <label>Score: </label><input type="text" name"score"/></br> 
      <label>Name: </label><input type="text" name"name"/> 
      <label>Score: </label><input type="text" name"score"/></br> 
      <input type="submit" value="Enter Scores" /> 
     </form> 
    </body> 
</html>''' 

class ResultsPage(object): 
    rbegin = '''<!DOCTYPE HTML> 
    <html> 
     <head> 
      <title>Here are Your High Scores</title> 
      <link css/style.css/> 
     </head>''' 
    rbody = '''<body> 
      <div class="scoreboard"> 
       <h1>High Scores</h1> 
      </div> 
     </body> 
    </html>''' 
+0

などname="name1"を試してみてください。私はそのメソッドを 'POST'に変更するので、少なくともハンドラのフォームをテストすることができます。 – GAEfan

+0

Pythonクラスオブジェクトの内部にHTMLコードを入れないでください。まず第一に、これらのクラスは状態を保持しないため無意味です。あなたは単純な変数を使うことができます。しかし、とにかくPythonファイルの中にHTMLを置くべきではありません。あなたはJinjaテンプレートを使うべきです。 –

答えて

0

あなたは等号忘れFまたはname属性です。さらに、複数の入力に同じ名前を付ける競合が発生します。

は、私はあなたのformタグに `action`を追加することによって開始する

+0

ありがとう!それは結果ページを表示するのに役立ちました。そして今、私はそれぞれの名前に独自の一意の名前を付けました。今私は名前とスコアのリストを最高から最低まで吐き出す方法と、平均を行う方法を理解する必要があります。 –

+0

これは別の質問であり、SOの目的ではありません。私たちはあなたの宿題をしていますか?この回答がコード内のエラーを解決した場合は、「受け入れ済み」とマークします。別の質問がある場合は、適切なフォーラムに投稿してください。ヒント:あなたはpythonで計算を行い、jinjaを使ってテンプレート(HTMLページ)に吐き出します。 – GAEfan

関連する問題