Мой код python:
import os
import webapp2
import jinja2
from google.appengine.ext import db
template_dir = os.path.join(os.path.dirname(__file__), 'templates')
jinja_env = jinja2.Environment(loader = jinja2.FileSystemLoader(template_dir), autoescape=True)
class Handler(webapp2.RequestHandler):
def write(self, *a, **kw):
self.response.out.write(*a, **kw)
def render_str(self, template, **params):
t = jinja_env.get_template(template)
return t.render(params)
def render(self, template, **kw):
self.write(self.render_str(template, **kw))
class MainPage(Handler):
#def render_front(self, title="", art="", error=""):
#self.render("front.html", title=title, art=art, error = error)
def get(self):
self.render("front.html")
def post(self):
title = self.request.get("title")
art = self.request.get("art")
if (title and art):
self.write("Thanks!")
#else :
#self.write("Ooops")
#error="we need both a title and some artwork!"
#self.render("front.html", error=error)
application = webapp2.WSGIApplication([('/',MainPage)],debug=True)
Мой HTML-код:
<!DOCTYPE html>
<html>
<head>
<title>/ascii/</title>
</head>
<body>
<h1>/ascii/</h1>
<form method="post">
<label>
<div>title</div>
<input type="text" name="title" value= "{{ title }}">
</label>
<label>
<div>art</div>
<textarea name="art">{{ art }}</textarea>
</label>
<div class="error">{{ error }}</div>
<input type="submit">
</form>
</body>
</html>
Я следую онлайн- классу:
(начиная с обработки формы)
Задача: (1) Функция
#def render_front(self, title="", art="", error=""):
#self.render("front.html", title=title, art=art, error = error)
Имеет проблемы. Если я не прокомментирую это, страница будет иметь 500 ошибок.
(2)
if (title and art):
self.write("Thanks!")
#else :
#self.write("Ooops")
если я не прокомментирую остальную часть, страница также будет иметь ошибку 500!
Пожалуйста помоги! Я не знаю, что случилось! Думаю, может быть, потому, что у меня не было Jinja2 на моем питоне. Но я запустил ez_setup.py Jinja2, и он сказал, что Jinja2 установлен!
Я также попытался в html файле изменить value = "{{title}}" на value = {{title}}, но все равно не работает.
Благодарю!!
Благодаря @Greg !!!
Я не знал, что сообщение об ошибке находится в журнале. После проверки сообщения об ошибке я обнаружил ошибки!
О проблеме с кулаком, это некоторое пространство/вкладка. То же, что и этот пост. Проблема была обнаружена при использовании
python -m tabnanny yourfile.py
О второй проблеме, это потому, что я использовал ":" вместо ":". Это была опечатка.