如何在应用程序引擎上使用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