我正在使用 ajax 调用 sqlalchemy 和金字塔从我的 mysql 数据库中提取数据并分页。我的 Ajax 调用是:
$.ajax({
type: 'GET',
url: "results",
dataType: 'json',
})
.fail( function (jqXHR, textStatus, errorThrown){
alert(errorThrown);
})
.done(function(data){
$.each(data.myitems, function(index, item){
// do stuff here
});
});
我的看法是:
def pager(request):
query = DBSession.query(MyTable)
page_url = paginate.PageURL_WebOb(request)
customers = paginate.Page(query,
page=int(request.params.get("page", 1)),
items_per_page=25,
url=page_url)
return render_to_response ("templates/my_json.jinja2",
{"customers": customers},
request=request)
在我的 jinja2 模板中,我有:
{
"page":{{ customers.page }},
"next_page":{{ customers.next_page }},
"customerlist":[{% for cus in customers %}
{"name":"{{ cus.name }}",
"birthday":"{{ cus.birthday }}",
{% if not loop.last %},{% endif %}{% endfor %}
]
}
然后我的数据如下所示:
{
"thisvariable":1,
"anothervariable":2,
"myitems":[
{"name":"Matt",
"birthday":"1978-02-23 00:00:00"},
{"name":"Carol\y",
"birthday":"1967-05-05 00:00:00"},
{"name":"Bob",
"birthday":"1984-02-03 00:00:00"}
]
}
如何逃避 Carol\y 中的“\”?我收到一个错误:“SyntaxError: Unexpected token y”。在 Jinja2 中,我尝试了 |e 转义但得到了同样的错误。
编辑:我也在我的models.py中尝试过:
from re import escape
class MyTable(Base):
....
def __init__(self, name=""):
self.name = escape(name)
我仍然得到同样的错误。