Google Appengine(Python)的基本HTML映射或URL重写
作者:互联网
我正在尝试为Google Appengine上的静态网站重写url.
我只想要
http://www.abc.com/about适用于http://www.abc.com/about.html
我不需要重写诸如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()
解决方法:
对于您的构造函数,您需要:
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))
我不熟悉您的编码风格,但是我所展示的内容已经为我所有的项目所用.
标签:friendly-url,google-app-engine,url-routing,python,url-rewriting 来源: https://codeday.me/bug/20191101/1983468.html