【发布时间】:2023-04-04 00:13:01
【问题描述】:
我是 Python、GAE 和数据存储模型的新手。所以有很多事情我还不知道,所以请耐心等待:)
我正在开发一项网络服务,该服务允许人们发布项目的“名称”和“描述”(描述),并将其包含在同一页面的表格中。但是,当我单击提交按钮时,出现错误:404 Not Found, The resource could not be found.
我预计下面显示的代码中会有很多错误(我只包含我的代码的简短 sn-ps,我认为这与使其更易于阅读有关),我最大的问题是我没有知道哪些部分是错误的或要问哪些具体问题。但我希望我能借此机会更多地了解我的代码中涉及的所有内容(Jinja、HTML、GQL 等),以及如何将它们组合在一起。
class Events(ndb.Model):
name = ndb.StringProperty()
desc = ndb.StringProperty()
class Promote(webapp2.RequestHandler):
def get(self):
query = ndb.gql("SELECT * "
"FROM Events "
)
template_values = {"events" : query,}
template = jinja_environment.get_template('promote.htm')
self.response.out.write(template.render(template_values))
def post(self):
event = Events(name = self.request.get('name'), desc = self.request.get('desc'))
event.put()
self.redirect('/promote')
app = webapp2.WSGIApplication([('/', Main),
('/publicsearch', PublicSearch),
('/promote', Promote)],
debug=True)
这是该页面的 html 代码。
<div class="jumbotron">
<div class = "container">
<form action="/promote" method="post">
<fieldset>
<div class="row-fluid">
<p> Promote your event here! </p>
<div class="row-fluid">
<div class="span6">
<p> Name of event: <br>
<textarea class="input-block-level" name="name" rows="1" cols = "50"> </textarea></p>
<p> Event description: <br>
<textarea class="input-block-level" name="desc" rows="3" cols = "50"> </textarea></p>
<p><input type="submit" value="Submit">
</div>
</div>
</div>
</div>
</div>
<h4> Events feed </h4>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th width="30%">Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
{% for event in events %}
<tr>
<td>{{ event.name }} </td>
<td>{{ event.desc }} </td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
【问题讨论】:
-
您应该尝试构建您的问题,以便只提出一个问题。如果您想要进行一般代码审查,还有其他 stackexchange 地方可以做到这一点。
标签: python google-app-engine google-cloud-datastore gql jinja2