我正在使用带有 python 以及 HTML 和 CSS 的谷歌应用程序引擎构建一个网络应用程序,我有一堆页面(大约 15 个),我想制作它们都会有些不同,但会有类似的目的。有没有办法只有几个可以创建一堆页面的处理程序,或者我是否需要在 python 中为每个页面使用不同的类?
我知道这个问题在没有页面上下文的情况下有点模糊,但实际上任何关于如何创建多个页面而不为它们编写全新的处理程序和 HTML 的信息都会有很大的帮助。
我正在使用带有 python 以及 HTML 和 CSS 的谷歌应用程序引擎构建一个网络应用程序,我有一堆页面(大约 15 个),我想制作它们都会有些不同,但会有类似的目的。有没有办法只有几个可以创建一堆页面的处理程序,或者我是否需要在 python 中为每个页面使用不同的类?
我知道这个问题在没有页面上下文的情况下有点模糊,但实际上任何关于如何创建多个页面而不为它们编写全新的处理程序和 HTML 的信息都会有很大的帮助。
不,您不需要为每个页面设置不同的类。
您可以将每个请求重定向到单个脚本app.yaml
handlers:
- url: /.*
script: dispatcher.app
然后,dispatcher.py
您可以将每个请求重定向到单个 RequestHandler 并在那里编写所有逻辑,例如jinja2
动态地为不同的 URL 提供不同的模板。
URL 映射文档解释了如何将多个 URL 重定向到一个 RequestHandler 。例如:
class BrowseHandler(webapp.RequestHandler):
def get(self, category, product_id):
# Display product with given ID in the given category.
# Map URLs like /browse/(category)/(product_id) to BrowseHandler.
application = webapp.WSGIApplication([(r'/browse/(.*)/(.*)', BrowseHandler)
],
debug=True)
def main():
run_wsgi_app(application)
if __name__ == '__main__':
main()
这实际上取决于您使用的框架(如果有的话),但您正在寻找的是模板系统。这是一个很好的框架和模板系统列表。
这实际上取决于您要做什么,但是如果您使用的是 webapp 或 webapp2,则可以使用一个处理程序。检查请求参数的 url 字段以找出用户正在请求的页面。