gpt4 book ai didi

python - Django 中无效的 block 标签 i=0

转载 作者:行者123 更新时间:2023-12-01 06:13:41 26 4
gpt4 key购买 nike

我正在阅读 Appengine 的 Python 入门指南,同时阅读 templates ,我修改了代码(这是一个简单的留言簿)以在留言簿条目旁边包含简单的编号。

在index.html中,我添加了(我认为的)相关代码。

index.html(我在第3行添加了{%i=0%},在第5行添加了{%i+=1%},在第7行添加了{{i}},其余的来自指南):

<html>
<body>
{%i=0%}
{% for greeting in greetings %}
{%i+=1%}
{% if greeting.author %}
<b>{{i}}:{{ greeting.author.nickname }}</b> wrote:
{% else %}
An anonymous person wrote:
{% endif %}
<blockquote>{{ greeting.content|escape }}</blockquote>
{% endfor %}

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

<a href="{{ url }}">{{ url_linktext }}</a>

</body>
</html>

我收到以下错误

TemplateSyntaxError: Invalid block tag: 'i=0'

我阅读了 Django 关于 templates 的帮助,这说明了

The Django template system provides tags which function similarly to some programming constructs – an if tag for boolean tests, a for tag for looping, etc. – but these are not simply executed as the corresponding Python code, and the template system will not execute arbitrary Python expressions.

所以我想,执行计算并不是模板系统的用途。

tl;dr

谁能告诉我如何使用 Django 模板对条目进行编号或使用“计数器 - 增量”结构?

我不认为这段代码是必要的,但为了完成图片,

未更改的 helloworld.py 代码:

import os
from google.appengine.ext.webapp import template
import cgi

from google.appengine.api import users
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
from google.appengine.ext import db

class Greeting(db.Model):
author = db.UserProperty()
content = db.StringProperty(multiline=True)
date = db.DateTimeProperty(auto_now_add=True)

class MainPage(webapp.RequestHandler):
def get(self):
greetings_query = Greeting.all().order('-date')
greetings = greetings_query.fetch(10)

if users.get_current_user():
url = users.create_logout_url(self.request.uri)
url_linktext = 'Logout'
else:
url = users.create_login_url(self.request.uri)
url_linktext = 'Login'

template_values = {
'greetings': greetings,
'url': url,
'url_linktext': url_linktext,
}

path = os.path.join(os.path.dirname(__file__), 'index.html')
self.response.out.write(template.render(path, template_values))
class Guestbook(webapp.RequestHandler):
def post(self):
greeting = Greeting()

if users.get_current_user():
greeting.author = users.get_current_user()

greeting.content = self.request.get('content')
greeting.put()
self.redirect('/')

application = webapp.WSGIApplication(
[('/', MainPage),
('/sign', Guestbook)],
debug=True)

def main():
run_wsgi_app(application)

if __name__ == "__main__":
main()

最佳答案

来自http://www.djangobook.com/en/beta/chapter04/

{% for item in todo_list %}
<p>{{ forloop.counter }}: {{ item }}</p>
{% endfor %}

关于python - Django 中无效的 block 标签 i=0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4479317/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com