尝试在我的flask应用程序中添加分页,但在使用request.args.get()时得到AttributeError。它显示该函数没有属性args,我不知道我在这里做错了什么。我尝试了一切,但无法解决这个问题。
from flask import Flask, request
from flask import Flask, render_template
from flask_paginate import Pagination, get_page_parameter
import mysql.connector
app = Flask(__name__)
app.config['SECRET_KEY'] = 'your_secret_key'
app.config['MYSQL_USER'] = 'root'
app.config['MYSQL_PASSWORD'] = ''
app.config['MYSQL_HOST'] = 'localhost'
app.config['MYSQL_DB'] = 'test'
db = mysql.connector.connect(user=app.config['MYSQL_USER'], password=app.config['MYSQL_PASSWORD'],
host=app.config['MYSQL_HOST'], database=app.config['MYSQL_DB'])
cursor = db.cursor()
@app.route('/')
def thumbnails():
# Retrieve the image URLs from the database
cursor.execute('SELECT * FROM sheet1')
rows = cursor.fetchall()
# Paginate the image URLs
page = int(request.args.get['page']) if 'page' in request.args else 1
per_page = 12
offset = (page - 1) * per_page
pagination = Pagination(page=page, per_page=per_page, total=len(image_urls), css_framework='bootstrap4')
image_urls = image_urls[offset:offset+per_page]
# Pass the image URLs and pagination object to the template
return render_template('index.html', rows=rows,pagination=pagination)
if __name__ == "__main__":
app.run(debug=True,port=5000)
这就是我所面临的错误。
File "C:\Users\acer\ProjectP\app.py", line 29, in thumbnails
page = int(request.args.get['page']) if 'page' in request.args else 1
AttributeError: 'function' object has no attribute 'args'
2条答案
按热度按时间qxgroojn1#
将
request.args.get['page']
替换为request.args.get('page')
。get
是一个函数,您将其用作字典。或者,您可以执行以下操作:request.args['page']
h79rfbju2#
我犯了和你一样的错误,我解决了它。希望我们有相同的病例你能确认。
其他人还没有真正回答为什么'request'对象没有属性args。
在我的情况下,这是因为我的应用程序认为“请求”是一个函数。在我看到这个错误后,我试着打印“请求”,看看为什么它没有任何“参数”。我得到了
那么为什么我的应用程序认为'request'是一个函数呢?事实证明,我在我的代码中意外地将'request'定义为函数:
所以,是的,在导入请求之后,我定义了请求。别这样我猜你在代码中的某个地方做了这件事,但没有在这篇文章中显示出来,所以你的应用认为request是别的东西,而不是Flask的请求。
这篇文章和你的相似。Flask view raises "AttributeError: 'function' object has no attribute"