python-3.x 属性错误:“function”对象没有属性“args”

osh3o9ms  于 2023-05-19  发布在  Python
关注(0)|答案(2)|浏览(249)

尝试在我的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'
qxgroojn

qxgroojn1#

request.args.get['page']替换为request.args.get('page')
get是一个函数,您将其用作字典。或者,您可以执行以下操作:request.args['page']

h79rfbju

h79rfbju2#

我犯了和你一样的错误,我解决了它。希望我们有相同的病例你能确认。
其他人还没有真正回答为什么'request'对象没有属性args。
在我的情况下,这是因为我的应用程序认为“请求”是一个函数。在我看到这个错误后,我试着打印“请求”,看看为什么它没有任何“参数”。我得到了

<function request at 0x0000019ef47391f0>

那么为什么我的应用程序认为'request'是一个函数呢?事实证明,我在我的代码中意外地将'request'定义为函数:

@app.route("/request")
def request():

所以,是的,在导入请求之后,我定义了请求。别这样我猜你在代码中的某个地方做了这件事,但没有在这篇文章中显示出来,所以你的应用认为request是别的东西,而不是Flask的请求。
这篇文章和你的相似。Flask view raises "AttributeError: 'function' object has no attribute"

相关问题