这是我的代码:
@app.route("/")
@app.route("/<type>")
@app.route('/page/<int:page>')
def index(type="top", page=0):
perpage=5
startat=page*perpage
cur = mysql.connection.cursor()
if type=='top':
cur.execute("SELECT * FROM posts ORDER BY likes DESC LIMIT %s, %s", (startat,perpage))
data = cur.fetchall()
cur.close()
return render_template("index.html", dat=data)
elif type=='new':
cur.execute("SELECT * FROM posts ORDER BY created_at DESC LIMIT %s, %s", (startat,perpage))
data = cur.fetchall()
cur.close()
return render_template("index.html", dat=data)
我正试图使分页和排序一起工作,而不会出现问题:
/page/1
有效/new/page/1
无法正常工作那该如何解决呢?
答案 0 :(得分:0)
您创建了一个错误的url架构:有两个相似的url:@app.route("/page")
和@app.route("/<type>")
,因为type
是一个字符串变量,可以分配给page
值。
无论如何,要解决您的问题,您需要创建一个不会混淆的URL。例如:
@app.route("/")
@app.route("/page/<type>/")
@app.route('/page/<type>/<int:page>')
def index(type="top", page=0):
perpage=5
#...
在这种情况下,不能将type
分配给空字符串作为默认值。
其他可能的解决方案:
@app.route("/")
@app.route("/some-text/<type>")
@app.route('/page/<int:page>')
def index(type="top", page=0):
perpage=5