Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Flask函数接受一个参数,给定2_Python_Flask_Wtforms - Fatal编程技术网

Python Flask函数接受一个参数,给定2

Python Flask函数接受一个参数,给定2,python,flask,wtforms,Python,Flask,Wtforms,我试图使用form.consumer\u key.data从我的WTForm传递数据,但我收到一个参数说我传入了两个参数。我做错了什么 这是我的错误 File "/Users/Gaby/Documents/Code/Twitty/app/views.py", line 18, in authenticate 这是我要传递文件的路线 auth = TwitterAuth() @app.route('/') @app.route('/authenticate', methods=['GET',

我试图使用
form.consumer\u key.data
从我的WTForm传递数据,但我收到一个参数说我传入了两个参数。我做错了什么

这是我的错误

File "/Users/Gaby/Documents/Code/Twitty/app/views.py", line 18, in authenticate
这是我要传递文件的路线

auth = TwitterAuth()

@app.route('/')
@app.route('/authenticate', methods=['GET', 'POST'])
def authenticate():
    form = TwitterAuthForm()

    if form.validate_on_submit():

        #this is where my error is happening
        auth.set_consumer_key(form.consumer_key.data)
        auth.set_consumer_secret(form.consumer_secret.data)
        auth.set_access_token(form.access_token.data)
        auth.set_access_secret(form.access_secret.data)
        return redirect('/index.html')

return render_template('authenticate.html',
        title='Sign In',
        form=form)
我的TwitterAuth()实现只是getter和setter

class TwitterAuth(): 
        consumer_key = "" 
        consumer_secret = "" 
        access_token = "" 
        access_secret = "" 

        def set_consumer_key(ck): 
                consumer_key = ck 

        def set_consumer_secret(cs): 
                consumer_secret = cs 

        def set_access_token(at): 
                access_token = at 

        def set_access_secret(access_sec):
                access_secret = access_sec

        def get_consumer_key():
                return consumer_key

        def get_consumer_secret():
                return consumer_secret

        def get_access_token():
                return access_token

        def get_access_secret():
                return access_secret

TwitterAuth类中没有一个方法具有
self
参数,这就是为什么会出现错误

在Python中,每个实例方法的第一个参数必须是
self

(实际上它可以被称为任何名称,但是
self
是常规名称:您不会看到使用任何其他名称)

编辑:


此外,在getter和setter方法中,您应该返回
self.attribute\u name
并分配给
self.attribute\u name
,以便返回和设置
TwitterAuth
实例的属性值,否则您将遇到更多错误。

您的错误消息将被剪裁。请粘贴整个错误消息。当您尝试
auth.consumer\u key=form.consumer\u key.data
时会发生什么?pythonth中不需要setter方法,它们也可以全部更改为类方法,因为似乎不需要实例variables@cricket_007实际上没有,因为OP可能打算在方法体中设置实例变量,但是忽略了给self赋值。attr_name-哦,否则赋值就没有意义了。是的,我在阅读类变量,你仍然需要self。我认为pythonic方法不会使用getter和setter,因为它们主要是unnecessary@cricket_007我已经更新了答案,提到修复方法体。总的来说,我同意你的看法——TwitterAuth可能只是一个
dict
——但问题是关于例外而不是设计。