如何在应用程序引擎上使用Python加载.html页面

如何在应用程序引擎上使用Python加载.html页面,python,html,google-app-engine,webapp2,jinja2,Python,Html,Google App Engine,Webapp2,Jinja2,在下面的示例中,.html数据与Python代码位于同一个文件中(作为变量MAIN\u PAGE\u html) 我希望.html内容位于它自己的不同文件中 如何显示HTML页面?我必须始终使用Jinja2加载它吗 或者有没有更简单的方法来获取我的.html的内容并将其传递给self.response.write import cgi from google.appengine.api import users import webapp2 MAIN_PAGE_HTML = """\ <

在下面的示例中,
.html
数据与Python代码位于同一个文件中(作为变量
MAIN\u PAGE\u html

我希望
.html
内容位于它自己的不同文件中

如何显示HTML页面?我必须始终使用
Jinja2
加载它吗

或者有没有更简单的方法来获取我的
.html
的内容并将其传递给
self.response.write

import cgi from google.appengine.api import users import webapp2

MAIN_PAGE_HTML = """\ <html>   <body>
    <form action="/sign" method="post">
      <div><textarea name="content" rows="3" cols="60"></textarea></div>
      <div><input type="submit" value="Sign Guestbook"></div>
    </form>   </body> </html> """

class MainPage(webapp2.RequestHandler):
    def get(self):
        self.response.write(MAIN_PAGE_HTML)

class Guestbook(webapp2.RequestHandler):
    def post(self):
        self.response.write('<html><body>You wrote:<pre>')
        self.response.write(cgi.escape(self.request.get('content')))
        self.response.write('</pre></body></html>')

application = webapp2.WSGIApplication([
    ('/', MainPage),
    ('/sign', Guestbook), ], debug=True)
从google.appengine.api导入cgi导入用户导入webapp2
主页面\u HTML=“”\
"""
类主页(webapp2.RequestHandler):
def get(自我):
self.response.write(主页面)
类留言簿(webapp2.RequestHandler):
def post(自我):
self.response.write('youwrite:')
self.response.write(cgi.escape(self.request.get('content'))
self.response.write(“”)
application=webapp2.WSGIApplication([
(“/”,主页),
('/sign',留言簿),],debug=True)
我的
.html
文件包含一个用户可以填写并发送给我的表单。

为您提供了一种向用户提供动态内容的体面而简单的方法:如果您需要动态内容,我建议您使用此方法

或者,如果您只需要静态内容,则使用。 (请注意,StackOverflow有关于如何实现这一点的帖子:例如:)

如果需要,您也可以动态加载自己的文件,但我不认为这是解决问题的首选途径。

这是一个模板引擎,基本上是在客户端提供服务之前合并变量,但包括模板引擎本身

handlers:
- url: /images # in the html can access from localhost:8080/images
  static_dir: templates/images # folder template, subfolder images
- url: /js
  static_dir: templates/js  
- url: /css
  static_dir: templates/css  
- url: /fonts
  static_dir: templates/fonts  
- url: /assets
  static_dir: templates/assets  
根据这个yaml文件,这将是项目中的结构


很抱歉,如果我在这方面遇到问题。所以你是说我应该能够在不使用
类留言簿(webapp2.RequestHandler)的情况下加载我的主屏幕:
如果这是正确的,这是一个好的做法吗?谢谢。是的-你的主页(本例中的主页)可以静态服务,然后请求一个动态URL(在本例中为“签名”POST调用)。不过,在app.yaml中,URL需要是可区分的。然而,我不确定什么是“最佳实践”。
handlers:
- url: /images # in the html can access from localhost:8080/images
  static_dir: templates/images # folder template, subfolder images
- url: /js
  static_dir: templates/js  
- url: /css
  static_dir: templates/css  
- url: /fonts
  static_dir: templates/fonts  
- url: /assets
  static_dir: templates/assets  
-  MyAppFolder
-- Templates
---- images
---- js
---- css
---- fonts
---- assets