1

我的views.py中有一段代码用于django应用程序:

for i in range(0,10):
    row = cursor.fetchone()
    tablestring = tablestring + "<tr><td>" + row[0] + "</td><td>" + + str(row[3]) + "</td></tr>"

这在我加载页面时工作正常,但如果我将范围更改为 (0,20) 或更高的值,我只会得到一个空白页面。我的问题是:是什么导致了这种限制?是 python 或 django 还是主机(pythonanywhere)?

另外,我刚从 django 开始,我知道这可能不是最好的代码。如果您有任何建议使其更整洁或更高效,我们将不胜感激。

谢谢您的帮助

编辑:这是我的查询:

cursor.execute("""SELECT title, movie_url, movie_id, cScore  FROM movies""")
4

2 回答 2

3

你真的应该使用django orm并在模板中编写这些表格标记,按照本教程获取基本概念

于 2014-01-11T21:07:30.900 回答
1

我的第一个猜测是少于 20 行,所以一旦你用完它们row将是 None 并且你尝试索引它会引发异常。

至于改进代码:

就像 Yossi 建议的那样,您可能应该使用 ORM。ORM(对象关系映射器)允许您以更面向对象的方式访问数据库,这可以使代码更简洁,并避免与参数转义相关的错误(另一方面,如果您想这样做可能并不理想)创建非常复杂的查询,因为那个 SQL 仍然是最好的恕我直言)。

我也同意 Guy 的观点,即您应该使用模板系统而不是连接 HTML 字符串。

于 2014-01-11T21:11:55.237 回答