尝试在我的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:UsersacerProjectPapp.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'
将request.args.get['page']
替换为request.args.get('page')
get
是一个函数,你将它用作字典。或者,您可以这样做:request.args['page']
我和你有同样的错误,我解决了它。希望我们有相同的情况,你可以确认。
其他人还没有真正回答为什么'request'对象没有属性参数。
在我的例子中,这是因为我的应用程序认为"请求"是一个函数。在我看到这个错误后,我试着打印"请求",看看为什么它没有任何"args"。我得到
<function request at 0x0000019ef47391f0>
那么为什么我的应用程序认为'request'是一个函数?事实证明,我在代码中意外地将'request'定义为一个函数:
@app.route("/request")
def request():
导入request后,我定义了request。不要那样做。我猜你在代码的某个地方做了,但没有在这篇文章中显示,所以你的应用程序认为请求是别的东西,而不是来自Flask的请求。
这篇文章和你的相似。Flask视图抛出"AttributeError: 'function'对象没有属性">