0

Pythonを使用してGoogle AppエンジンでHTMLに値を表示するにはどうすればよいですか?

値を取得し、変数に格納しました。

次のことを試しましたが、エラーが発生しました。 for ループを使用して取得したレコードを表示したいのですが、わかりません。

コード:

 import cgi
 import webapp2

 from google.appengine.ext import db

 form="""<!DOCTYPE html>
 <html>
    <head>
    <title>ascii</title>
</head>
<body>
<h1>/ascii</h1>
<form method="post">
    <label>
<div>Title</div>
<input type="text" name="text" value="%(text)s">
</label>
<br>
<label>
    Art
    <br><textarea cols="50" rows="12"  name="art" value="%(art)s"></textarea>
 </label><br>
<input type="submit">
 <div style="color:blue">%(error)s</div>

</form>
  <hr>
 <hr>

    ***{%for art in arts %}
<div>
<div>{% art.title %}</div>
<pre>{%art.art%}</pre>
</div>***
</body>
</html>"""
class Art(db.Model):
    title = db.StringProperty(required=True)
    art=db.TextProperty(required=True)
    created=db.DateTimeProperty(auto_now_add=True)

class MainHandler(webapp2.RequestHandler):
    def write_form(self,error="",text="",art="",arts=""):
        ***arts=db.GqlQuery("select * from Art order by created DESC")***

        self.response.out.write(form %{"error":error,
                                   "text":text,
                                   "art":art)}                                       
    def escape_html(self,s):
        return cgi.escape(s,quote=True)
    def get(self):
        self.write_form()

    def post(self):

        text1=self.escape_html(self.request.get("text"))
        art1=self.escape_html(self.request.get("art"))
        if text1 and art1:
            a=Art(title=text1,art=art1)
            a.put()
            self.redirect("/")                      

        else:
            self.write_form("Both fields required",text1,art1)    

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

1 に答える 1

2

この方法はスケーリングがうまくいかず、適切なアプローチではありません。GoogleAppEngineでのPythonの入門チュートリアルでテンプレートがどのように使用されているかを確認してください。

一般的な考え方は、テンプレートに記述し、それにいくつかのパラメーターを渡すことで、 -loops、-statementsなどHTMLを使用できるようになるというものですforif

于 2012-06-21T11:29:41.367 に答える