3

私はGoogle Appengineの静的サイトのURLを書き換えようとしています。 私はほしいだけ http://www.abc.com/aboutのためにhttp://www.abc.com/about.html 私はabc.com/page?=1または何かのようなもののために書き直す必要はありません。 私はhtmlページのために明示的にURLを書き換える方法を考え出したいと思います。Google Appengine(python)の基本的な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() 
+0

どのように動作していませんか?何が起こり、何が起こると思いますか? –

答えて

4

、あなたがしたい:この意味いつでも誰かがhttp://www.abc.com/about/に行く

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

、彼らは意志あなたのAboutハンドラにルーティングされます。

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

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

私はあなたのコーディングスタイルに慣れていないんだけど、私が示されてきたあなたはすべての私のプロジェクトで私のために働いています。

+1

アプリケーション定義をメインに置かないでください。そうすれば、それは一度だけ定義され、Python 2.7ランタイムで動作するようにアプリケーションを簡単に変換することができます。また、最初のスニペットのインデントが間違っています。 –

+0

アプリケーション定義をメインの外に置く方法はどうですか? インデントの問題を修正しました。ありがとうございます! – mrmo123

+0

ありがとうmrmo123、チャームのように働いた! @nick、2.7を使用していますが、アプリケーション定義をメインの外に置く方法はありますか?ありがとう –