我故意在app = Flask(name)中删除了名字,我收到此错误:
Traceback (most recent call last):
File "routes.py", line 4, in <module>
app = Flask()
TypeError: __init__() takes at least 2 arguments (1 given)
Run Code Online (Sandbox Code Playgroud)
这是我的nettuts代码,这是我的代码:
from flask import Flask, render_template
app = Flask()
@app.route('/')
def home():
return render_template('home.html')
@app.route('/about')
def about():
return render_template('about.html')
if __name__ == '__main__':
app.run(debug=True)
Run Code Online (Sandbox Code Playgroud)
我的问题是:这个init方法在哪里至少需要2个参数?
cod*_*eek 10
如果您理解类和对象的概念,那么__init__是初始化类实例的构造函数.在这种情况下,该类是Flask,当您执行以下操作时,您正在初始化Flask对象的实例:
app = Flask(__name__)
Run Code Online (Sandbox Code Playgroud)
现在你的问题是,"这个init方法在哪里至少需要2个参数?"
这可以按照下面的定义来解释,它定义了代码中的构造函数.
def __init__(self, import_name, static_path=None, static_url_path=None,
static_folder='static', template_folder='templates',
instance_path=None, instance_relative_config=False):
Run Code Online (Sandbox Code Playgroud)
如果您看到上述内容,self并且import name是必需参数,则休息均为默认值或不需要.该self由Python的需要,即使你能说出它什么都重要.阅读本博客由python本人的创建者为什么http://neopythonic.blogspot.com/2008/10/why-explicit-self-has-to-stay.html
您需要为 Flask 应用程序命名:
app = Flask(__name__)
Run Code Online (Sandbox Code Playgroud)
__name__将是当前模块的名称,但原则上您可以将其命名为任何您想要的名称......
| 归档时间: |
|
| 查看次数: |
1188 次 |
| 最近记录: |