3

GoogleAppengineの静的サイトのURLを書き直そうとしています。http://www.abc.com/about.htmlの場合はhttp://www.abc.com/aboutのみ が必要です。abc.com/page?=1などの場合は書き直す必要はありません。HTMLページのURLを明示的に書き直す方法を知りたいだけです。

私が現在使用しているコード(機能していません)-

from google.appengine.ext import webapp
from google.appengine.ext.webapp import util
from google.appengine.ext.webapp import template
import os

class MainHandler(webapp.RequestHandler):
    def get(self):
        template_values = {}

        path = os.path.join(os.path.dirname(__file__), 'index.html')
        self.response.out.write(template.render(path, template_values))


class PostHandler(webapp.RequestHandler):
    def get(self, slug):
        template_values = {}
        post_list =  { 
            'home' : 'index.html',
            'portfolio' : 'portfolio.html',            
            'contact' : 'contact.html',
            'about' : 'about.html'
        }

        if slug in post_list:
            self.response.out.write('Slugs not handled by C-Dan yet')
        else:
            self.response.out.write('no post with this slug')

def main():
    application = webapp.WSGIApplication([('/', MainHandler),('/(.*)', PostHandler)], debug=True)
    util.run_wsgi_app(application)

if __name__ == '__main__':
    main()
4

1 に答える 1

4

コンストラクターには、次のものが必要です。

def main():
  application = webapp.WSGIApplication([
    ('/', MainHandler),
    ('/portfolio/', Portfolio),
    ('/contact/', Contant),
    ('/about/', About)
    ])
  util.run_wsgi_app(application)

これは、誰かがhttp://www.abc.com/about/にアクセスするたびに、Aboutハンドラーに「ルーティング」されることを意味します。

次に、Aboutハンドラーを作成する必要があります。

class About(webapp.RequestHandler):
  def get(self):
    self.response.out.write(template.render('about.html', None))

私はあなたのコーディングスタイルに精通していませんが、私があなたに示したことは、私のすべてのプロジェクトで私のために働いてきました。

于 2012-04-24T02:16:27.153 に答える