{{ item.1 }}
前面我们演示了 Django 如何连接 MySQL 数据库,并取出一条数据。
但是到了应用场景就没那么简单了。下面我们再来看看这么一个需求:一个数据表里有若干个记录,现在我们要把 title 和 content 这两个字段的内容取出,并在模板里循环打印。其实这也很常见,就是一般的列表页啦。
URLConf 这里就不再累述了,只把关键的部分罗列一下。
1. views.py
def chika(request):
db = MySQLdb.connect(user='root', db='chika', passwd='', host='localhost')
cursor = db.cursor()
cursor.execute('SELECT title, content FROM nowamagic ORDER BY id DESC')
chika = cursor.fetchall()
db.close()
return render_to_response('index.html', {'chika': chika})
2. 模板文件
{% block article %}
{% for item in chika %}
{% endfor %}
{% endblock %}
你可以在模板把 {{ chika }} 打印出来:
(('chika_title2', 'chika_content2'), ('chika_title', 'chika_content'))
用惯 PHP,你可能会对这样的数据结构感到陌生。怎么遍历这个东西呢?在 Python 中,这个被称为元组。怎么遍历元组呢?只能用 0,1,2…… 这样子了:
{% for item in mylst %}
{{ item.0 }} {{ item.1}} {{ item.2 }}
{% endfor %}
就这样,一个列表页就做好了。当然还应该有分页,这个会在后面介绍。